如何查找Python两个列表对应位置相同元素的索引
Python获取两个列表对应位置元素相等的索引实现方案
方案1:列表推导式(最简写法)
通过enumerate绑定索引与元素,搭配zip同步遍历两个列表,一行即可完成需求:
list_1 = ['less', 'more', 'more', 'more', 'more', 'more', 'more', 'more'] list_2 = ['less', 'less', 'less', 'more', 'less', 'less', 'more', 'less'] equal_indexes = [idx for idx, (val1, val2) in enumerate(zip(list_1, list_2)) if val1 == val2] print(equal_indexes)
运行输出结果为 [0, 3, 6],符合预期:
- 索引0:两个列表值均为
less - 索引3:两个列表值均为
more - 索引6:两个列表值均为
more
注意:如果两个列表长度不一致,zip会自动截断匹配到较短列表的最后一位;若需要覆盖长列表的所有索引,可替换为itertools.zip_longest处理。
方案2:基础循环写法(易理解)
如果对列表推导式不熟悉,可通过基础索引遍历实现,逻辑更直观:
equal_indexes = [] for i in range(len(list_1)): if list_1[i] == list_2[i]: equal_indexes.append(i) print(equal_indexes)
运行结果和方案1完全一致。
内容的提问来源于stack exchange,提问作者aflatoon
相关产品推荐
相关产品推荐

