是否有Python方式迭代两个列表之间的差异?

时间:2019-10-03 17:11:05

标签: python python-3.x list

我的目标是迭代两个列表的差异

我尝试使用博奇代码编写a-b,如下所示

for i in a:
        if i in b:
            continue
        #statements

我想知道是否还有一种更Python /更有效的方法。

3 个答案:

答案 0 :(得分:6)

您可以使用sets来查看区别:

a = [1, 2, 3, 4, 5]
b = [2, 4, 6]

a = set(a)
b = set(b)

for i in a.difference(b):
    print(i)

# even supports the arithmetic syntax :D
for i in a - b:
    print(i)

答案 1 :(得分:0)

您所拥有的很好。如果您反对continue语句,则可以遍历一个生成器:

for i in (x for x in a if x not in b):

尽管在可读性方面可能会更差。

答案 2 :(得分:0)

就集合而言,a中的项目而不是b中的项目将是集合差异,因此这将是

for i in set(a).difference(b):
    # statements