从任意项目列表(在我的示例中为列表列表)中删除所有多个出现项目的最快方法是什么?结果,只有在列表中出现过一次的项目才会显示出来,从而删除所有重复项。
输入:[[1, 2], [1, 3], [1, 4], [1, 2], [1, 4], [1, 2]]
输出:[[1, 3], ]
这个解决方案很慢:
output = [item for item in input if input.count(item)==1]
这个解决方案更快:
duplicates = []
output = []
for item in input:
if not item in duplicates:
if item in output:
output.remove(item)
duplicates.append(item)
else:
output.append(item)
有没有更好的解决方案,可能是首先对列表进行排序?任何想法表示赞赏。