如何检查一个列表的元素是否在其他列表中(列表的大小不同)

时间:2018-05-06 09:43:26

标签: python

a=[0,1,2,3]
b=[1,2,3,4,5,6,7,8,9]
for i in range(4):
   if a[i] not in b:
     del a[i]
print a   

我收到此错误     IndexError:列表索引超出范围 我不知道为什么?

2 个答案:

答案 0 :(得分:0)

集的属性可用于此类问题。 对于上述问题,首先我们可以将两个列表都转换为集合,然后将它们进行交集。

set_a = set(a)
set_b = set(b)
common_elements_set = set_a.intersection(set_b)
common_elements_list = list(common_elements_set)

答案 1 :(得分:-1)

range(4)更改为range(3)

这是因为i==0时,您从列表a中删除了该元素,因此列表的长度变为3而不是4