在Python中,如何比较两个列表并获取匹配的所有索引?

Kos*_*sig 8 python

这可能是一个简单的问题,我只是缺少但我有两个包含字符串的列表,我想逐个元素地"反弹"一个,而另一个返回匹配的索引.我希望有多个匹配,并希望所有的指数.我知道list.index()获得第一个,你可以很容易地得到最后一个.例如:

list1 = ['AS144','401M','31TP01']

list2 = ['HDE342','114','M9553','AS144','AS144','401M']
Run Code Online (Sandbox Code Playgroud)

然后我将遍历list1,比较list2和输出:
[0,0,0,1,1,0] , [3,4] 或者等,第一次迭代
[0,0,0,0,0,1] , [6]为第二次
和/ [0,0,0,0,0,0][]第三次

编辑:抱歉任何混乱.我希望以某种方式获得结果,然后我可以像这样使用它们 - 我有第三个列表可以调用list3,我想从输出的索引中获取该列表中的值.即list3[previousindexoutput]=list of cooresponding values

por*_*uod 9

我个人开始:

matches = [item for item in list1 if item in list2]

  • 我首先将 list2 缓存在“set”中,因为否则,您将获得 O(n*n) 性能。 (2认同)

ezo*_*zod 1

[([int(item1 == item2) for item2 in list2], [n for n, item2 in enumerate(list2) if item1 == item2]) for item1 in list1]
Run Code Online (Sandbox Code Playgroud)