【问题标题】:Pythonicly eliminating duplicates from list of hashable elements [duplicate]Pythonic地从可散列元素列表中消除重复项[重复]
【发布时间】:2014-04-20 02:03:11
【问题描述】:

我只是想这样做

mylist = list(set(mylist))

mylist 中删除所有重复条目。然而,链接内置插件总是让人觉得有点笨拙。我想知道,从列表中消除重复项的(大多数)pythonic/zen 方法是什么?

在搜索时,我发现上述构造是“消除重复”问题here on stackoverflow 的答案。没有人说这是一个坏主意,但这只是暗示一个答案,明确的胜于隐含的。

上述构造是从(可散列元素的)列表中消除重复项的方法吗?

如果不是,那是什么?

【问题讨论】:

  • 据我所知,这很pythonic。
  • 那你认为非pythonic怎么样?
  • 具有讽刺意味的是,关于重复的问题本身就是重复的:D
  • @JayanthKoushik:我知道。我正在考虑将其作为评论放在引用的问题下,但我认为它仍然太不同而无法作为评论进行讨论。

标签: python list unique zen-of-python


【解决方案1】:

如果不简洁明了,是什么让 Pythonic 变得更加简洁?这正是您的代码所做的:

uniq = list(set(dups))

将列表转换为集合,这将删除重复项,因为集合仅包含唯一值,然后再次将其转换回列表。链接内置插件来完成一个目标并不难。它很简洁。简洁。优雅的。它不依赖于任何模块或库。每个操作都清楚地知道它的作用。意图很容易辨别。确实,这是正确的解决方案。

【讨论】:

  • 那个 set 属性可以被认为是“隐式”的。这实际上就是让我问这个问题的原因。但也许我最近使用 pylint 有点过分了......
  • @user1129682:为什么是隐含的?您正在显式创建一个集合,并且众所周知,一个集合被定义为不包含重复项(即,如果您将一个元素添加到已经存在的集合中,则该集合将不会被修改)。
猜你喜欢
  • 2012-06-02
  • 2020-05-20
  • 1970-01-01
  • 2015-01-05
  • 1970-01-01
  • 2020-04-05
  • 1970-01-01
  • 1970-01-01
  • 2012-05-09
相关资源
最近更新 更多