我想从两个列表中删除重复项,于是我编写了这个函数:
a = ["abc", "def", "ijk", "lmn", "opq", "rst", "xyz"]
b = ["ijk", "lmn", "opq", "rst", "123", "456", ]
for i in b:
if i in a:
print "found " + i
b.remove(i)
print b
但我发现,匹配项后面的项并没有被删除。
我得到的结果如下:
found ijk
found opq
['lmn', 'rst', '123', '456']
但我希望的结果是这样的:
['123', '456']
我该如何修复我的函数来实现我想要的结果?
谢谢。
a
变得更长,将其转换为集合set
可能会更有效率(对于集合,x in s
的时间复杂度是O(1),而对于列表则是O(n)),参考http://wiki.python.org/moin/TimeComplexity。 - Frerich Raabe