有没有办法检查两个列表是否包含Python中的任何相同值?

时间:2011-11-04 16:40:44

标签: python variables

例如,如果我有:

a = [20,30,56,78,99]
b = [10,20,40,56,99]

我可以使用哪些内容来搜索2个列表,获取值205699

注意:我无法使用此功能。

3 个答案:

答案 0 :(得分:2)

Python集是一种干净,简单的方法:

>>> a = [20,30,56,78,99]
>>> b = [10,20,40,56,99]
>>> set(a) & set(b)
set([56, 99, 20])

如果您不能使用它们,可以使用词典完成相同的操作:

>>> d = dict.fromkeys(b)
>>> for k in a:
        if k in d:
            print k

20
56
99

如果元素不可清除,只需进行直接包含测试:

>>> for k in a:
        if k in b:
            print k

20
56
99

答案 1 :(得分:2)

可以使用集合:

a = [20, 30, 56, 78, 99]
b = [10, 20, 40, 56, 99]
print set(a) & set(b)

打印

set([56, 99, 20])

您希望得到的结果。

答案 2 :(得分:1)

values = [x for x in a if x in b] # note that this allows for duplicates

但实际上,只需使用套装。