【问题标题】:how to get unique values from a python list of list? [duplicate]如何从 python 列表中获取唯一值? [复制]
【发布时间】:2021-06-06 22:20:20
【问题描述】:

例如,

a = [[1, 2], [2, 3], [1, 2]]

我需要它

a = [[1, 2], [2, 3]]

因为 [1, 2] 是重复的。

set 不能使用,因为它不接受可变对象。我知道将列表更改为元组有效。但是,如果我想将它们保留为列表,有没有一种干净的方法? (不使用 numpy 数组)

【问题讨论】:

  • 转换为元组然后使用集合有什么不干净的地方?对我来说似乎很干净。
  • 有人已经有这个问题了! this answer 对您有帮助吗? c:
  • @spaghEddie 是的。我搜索但没有找到。谢谢。
  • 您是否有任何原因为什么要将它们保留为列表?如果不是,它读起来更像是一个无用的谜题,大多数人都不想花时间试图回答。任何时候在问题中引入明显阻碍最佳和自然解决方案的限制时,我想知道为什么有人会问“如何在没有勺子的情况下吃汤(或喝它)” - 只需使用该汤匙。 :) “我对金属和塑料过敏,所以我不能用勺子”让这个问题变得更好。

标签: python


【解决方案1】:

你可以试试这样的

a = [a[i] for i in range(len(a)) if a.index(a[i]) == i]

仅当它是第一次出现时才包含在 a 中的项目

【讨论】:

  • 这个效率极低。
【解决方案2】:

首先,您可以将列表列表转换为元组列表:

a = [tuple(l) for l in a]

然后,您可以将a 转换为set

>>> set(a)
set([(1, 2), (2, 3)])

【讨论】:

  • 我假设 OP 并没有像问题本身所提到的那样寻找那个解决方案。
猜你喜欢
  • 2012-10-05
  • 2014-11-20
  • 1970-01-01
  • 1970-01-01
  • 2011-10-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-06-22
相关资源
最近更新 更多