我有一段代码,使用此代码加载 2 个列表:

with open('blacklists.bls', 'r') as f:
            L = [dnsbls.strip() for dnsbls in f]
with open('ignore.bls', 'r') as f2:
            L2 = [ignbls.stip() for ignbls in f2]

dnsbls 包含:
list1
list2
list3

ignbls 包含
list2

我想要做的是合并 dnsbls 和 ignbls,然后删除出现多次的任何行并用“for”打印那些行。我在想这样的事情:
for combinedlist in L3:
            print combinedlist

在 aboe 示例中将打印出:
list1
list3

最佳答案

您需要使用 sets 而不是列表:

L3 = list(set(L).difference(L2))

示范:
>>> L=['list1','list2','list3']
>>> L2=['list2']
>>> set(L).difference(L2)
set(['list1', 'list3'])
>>> list(set(L).difference(L2))
['list1', 'list3']

出于您的目的,您可能不必再次将其转换回列表,您可以很好地迭代结果集。

关于python - 合并 2 个列表并删除重复条目,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13529794/

10-09 05:44