【发布时间】:2019-04-04 21:26:20
【问题描述】:
我有 2 个列表:
l1 = ['oak', 'tree', ',', 'tree', 'preservation', 'order', 'to', 'be', 'crowned', 'and', 'cleared', 'of', 'deadwood'] l2 = ['tree', 'preservation', 'order']
我需要找到这些交集的索引。结果应该只是[3,4,5] 的列表。
问题是我发现的算法返回错误的值。例如:
def find_matching_indices(a, b):
for i, x in enumerate(a):
for j, y in enumerate(b):
if x == y:
yield i, j
返回[(1, 0), (3, 0), (4, 1), (5, 2)],因此它认为所有匹配项不是列表中的整个列表。
【问题讨论】:
-
你不会期待 [1, 3, 4, 5] 吗? [i for i, val in enumerate(l1) if val in l2]
-
@lil_solbs 我认为他们正在寻找
l2作为l1的子列表完整呈现。 -
啊!这更有意义
标签: python-3.x list intersection