【发布时间】:2020-04-18 13:38:18
【问题描述】:
我试图使用以下代码从列表中删除重复项:
a = [1,2,3,4,2,6,1,1,5,2]
res = []
[res.append(i) for i in a if i not in res]
但我想这样做而不将我想要的列表定义为空列表(即,省略行 res = []),例如:
a = [1,2,3,4,2,6,1,1,5,2]
#Either:
res = [i for i in a if i not in res]
#Or:
[i for i in a if i not in 'this list'] # this list is not a string. I meant it as the list being comprehensed
我想避免库导入和set()
【问题讨论】:
-
我相信你做不到,使用
set(a)删除重复,单行也很简单。如果顺序很重要,请使用字典或 OrderedDict,具体取决于您的 Python 版本,但这将是 hacky。 -
我不打算使用集合或导入的库:)
-
并非所有带有列表的东西都是理解的自然候选者。另外,为什么要使用二次算法?
-
这个问题听起来是人为的。有许多(并且更有效)的方法可以实现您想要的。
-
使用set不导入任何库
标签: python list duplicates