python - 在python中找到2个“链表”的出现
问题描述
我必须编写一个程序来获取一个项目(链接到另一个列表)出现在一个列表中的次数,我写一个例子来理解:我有 2 个列表:
l=[13, 14, 14, 8, 13, 13, 14, 14, 8, 13 ] 和 l1=['豌豆', 'rpai', 'rpai', 'schiai', '豌豆', 'rpe' , 'zoi', 'zoi', 'briai', 'rpe']
现在,l 的每个项目都只链接到 l1 的一个项目(所以 13--'pea',14--'rpai' ecc),就像一个双射函数。我想创建第三个列表 l2 将 1 个数字与所有相等的“元组”(例如 13--'pea' =1, 14--'rpai'=2 )相关联,所以如果在循环期间我再次遇到另一个相等的元组我直接链接相关的数字(所以如果我再次获得像 l1 13-'pea' 的第 4 个元素,我将再次链接数字 1)......这就是我创建的,但它似乎工作,任何人都可以让我明白出了什么问题吗?谢谢
for i in lista:
if i not in pro:
pro.append(i)
l2.append(conta)
d[i[1]]=conta
conta+=1
else:
a=d.get(i[1])
l2.append(a)
现在“lista”是包含 2 个列表的元组的列表(所以就像 = [(13, 'pea), (14,'rpai') ecc] pro 是一个初始空列表, l2 是最终结果, d 是我用来从 l 元素和 l1 (d={13:0, 14:1 ...}) 创建连接的字典,但我不明白错误在哪里,任何建议=?谢谢!
解决方案
这能解决你的问题吗?
l = [13, 14, 14, 8, 13, 13, 14, 14, 8, 13]
l1 = ['pea', 'rpai', 'rpai', 'schiai', 'pea',
'rpe', 'zoi', 'zoi', 'briai ', 'rpe']
final = []
for num, item in zip(l, l1):
final.append((num, l1.index(item)))
print(final)
输出:
[(13, 0), (14, 1), (14, 1), (8, 3), (13, 0), (13, 5), (14, 6), (14, 6), (8, 8), (13, 5)]
推荐阅读
- reactjs - 仅接受对象键的 TypeScript 类型
- python - Grpc 没有增加消息的最大大小:收到的消息大于最大值
- python - 增加数字列表的最佳方法是什么
- php - Codeigniter 3 - 遇到 PHP 错误,严重性:通知,消息:未定义属性:Home::$home
- reactjs - 如何在不同的实例上使用 useState 挂钩?
- node.js - Heroku not running bot. Running bot only when run through cmd
- docker - Is Traefik on Docker significantly slower with HTTPS (vs HTTP)?
- flutter - Advanced screen animation in Flutter (like Instagram story navigation pop)?
- linux - lockdep 的子类和 name_version
- excel - Power Apps throws: "Error in implicit conversion.Cannot convert null object" after editing Excel file with openpyxl script