【发布时间】:2021-01-06 20:11:37
【问题描述】:
我想要一个删除列表中重复的任何数字的所有实例的代码。
例如:
Inputlist = [2, 3, 6, 6, 8, 9, 12, 12, 14]
Outputlist = [2,3,8,9,14]
我已经尝试删除列表中的重复元素(通过使用“唯一”函数),但它仍然在列表中留下了该元素的单个实例!
seen = set()
uniq = []
for x in Outputlist:
if x not in seen:
uniq.append(x)
seen.add(x)
seen
我也浏览了很多 StackOverflow 文章,但它们的不同之处在于他们正在搜索从两个不同列表中删除公共元素,或者他们只想保留每个元素的一个实例。我想简单地删除所有常见的元素。
【问题讨论】:
-
使用
set(Inputlist) -
输出列表 = 列表(设置(输入列表))。将其保留为列表
-
@YossiLevi 和 goodvibration 请详细阅读预期的输入和输出,这将不起作用
-
列表是否总是像示例中那样排序?
-
@VikrantSrivastava,当然,它可以预先排序,但在这种情况下,它将是 O(n*log2n) + O(n)。
标签: python