我有一段代码,使用此代码加载 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/