检查列表的有效方法,不使用变量作为索引计数器 - Python

时间:2017-11-26 09:39:27

标签: python python-3.x list loops

您好我想知道是否有更好的方式或更pythonic的方式来检查列表的内容而不使用变量。 通常我使用多个索引计数器,它看起来很乱。

list1 = ['foo', 'bar', 'baz']
list2 = ['foo', 'bundy', 'baz']
i = 0
for x in range(0,3):
    if list1[i] in list2[i]:
        print('In list')
    else:
        print('Not in list')
    i +=1

2 个答案:

答案 0 :(得分:2)

检查1个列表的元素是否存在于其他列表中。您可以将它们转换为集合并使用交集和对称差异,如下所示:

>>> list1 = ['foo', 'bar', 'baz']
>>> list2 = ['foo', 'bundy', 'baz']
>>> set(list1).intersection(set(list2))
{'foo', 'baz'}
>>> set(list1).symmetric_difference(set(list2))
{'bar', 'bundy'}
>>> set(list1).difference(set(list2))
{'bar'}
>>> set(list2).difference(set(list1))
{'bundy'}
>>> 

Intersection为您提供了两组之间的共同元素。

enter image description here

差异给出了1组中相对于另一组的元素。

enter image description here

enter image description here

对称差异为您提供两组中不常见的元素。

enter image description here

答案 1 :(得分:1)

在Python中你可以这样写:

list1 = ['foo', 'bar', 'baz']
list2 = ['foo', 'bundy', 'baz']
for element in list1:
    if element in list2:
        print('In list')
    else:
        print('Not in list')
祝你好运!