我有一个包含以下元素的列表
queue = [[(1, 5), 4, (1, 4)], [(2, 2), 6, (2, 3)],
[(1, 3), 6, (2, 3)], [(1, 3), 6, (1, 4)]]
还有一个叫
neighbors = [[(1, 5), 4, (1, 4)], [(1, 3), 6, (1, 4)],
[(2, 4), 4, (1, 4)], [(0, 4), 6, (1, 4)]]
如何检查第二个列表中的第一个元组元素是否存在于第一个元组元素中?
通常我会这样做:
for item in neighbors:
if item[0] in queue:
Do something...
但这遗漏了一些东西。
发布于 2018-05-29 08:32:38
将索引构建到queue
中,如下所示:
queue_exists = set(q[0] for q in queue)
然后在queue
中测试if,如:
if item[0] in queue_exists:
测试代码:
queue = [[(1, 5), 4, (1, 4)], [(2, 2), 6, (2, 3)], [(1, 3), 6, (2, 3)],
[(1, 3), 6, (1, 4)]]
neighbors = [[(1, 5), 4, (1, 4)], [(1, 3), 6, (1, 4)], [(2, 4), 4, (1, 4)],
[(0, 4), 6, (1, 4)]]
queue_exists = set(q[0] for q in queue)
for item in neighbors:
if item[0] in queue_exists:
print(item)
结果:
[(1, 5), 4, (1, 4)]
[(1, 3), 6, (1, 4)]
https://stackoverflow.com/questions/50574791
复制相似问题