Python:使用for循环比较列表中的项
我正在尝试比较一堆列表对,看看这两个列表中是否有相同的项目,使用的是循环。但是每次运行的时候,似乎总是会漏掉一个项目。
for item in alp:
for item2 in numbers:
if type((pos_ans[str(item) + str(item2)])) != int:
for item3 in (pos_ans[str(item) + str(item2)]):
if item3 in listing[item + "l"]:
(pos_ans[str(item) + str(item2)]).remove(item3)
pos_ans[str(item) + str(item2)]
是一个列表,而 listing[item + "l"]
是另一个列表。通常情况下,这个方法是有效的,但有时候会漏掉一两个项目。
2 个回答
0
在不看你代码的情况下,我只能猜测你的某个If
语句让一个列表项没有被计算进来。大多数情况下是这个条件:if type((pos_ans[str(item) + str(item2)])) != int:
有没有可能两个列表在同一个位置都有整数呢?
1
虽然没有更多的背景信息很难准确判断,但如果这两个对象确实是相同的,你可以试试把它们放进集合里,然后用intersect
这个方法来看看它们之间有什么重叠的部分。