首页 > 解决方案 > 在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 ...}) 创建连接的字典,但我不明白错误在哪里,任何建议=?谢谢!

标签: pythondictionarylinked-listfind-occurrences

解决方案


这能解决你的问题吗?

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)]

推荐阅读