我的目标是迭代两个列表的差异
我尝试使用博奇代码编写a-b,如下所示
for i in a:
if i in b:
continue
#statements
我想知道是否还有一种更Python /更有效的方法。
答案 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