Python:使用for循环比较列表中的项

1 投票
2 回答
2963 浏览
提问于 2025-04-17 07:41

我正在尝试比较一堆列表对,看看这两个列表中是否有相同的项目,使用的是循环。但是每次运行的时候,似乎总是会漏掉一个项目。

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这个方法来看看它们之间有什么重叠的部分。

撰写回答