有没有一个pythonic方法来遍历两个列表的差异?

2024-09-30 05:15:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我的目标是遍历两个列表的差异

我尝试了一个bodge代码来编写a-b,如下所示

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

我想知道是否有一种更为有效的方法。你知道吗


Tags: 方法代码in目标列表forif差异
3条回答

您可以使用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)

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

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

你所拥有的一切都很好。如果您反对continue语句,您可以在生成器上迭代:

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

尽管这在可读性方面可能更差。你知道吗

相关问题 更多 >

    热门问题