gpt4 book ai didi

python - 使用有序字典作为有序集

转载 作者:太空狗 更新时间:2023-10-29 20:48:52 24 4
gpt4 key购买 nike

现在 Python 3.7 生成了保留顺序的字典 officially part of the language spec我一直在努力思考如何最好地使用此属性,而不是实现细节。今天,我发现我需要一个顺序保留集,并且认为字典可以解决问题。

假设我们有一个可哈希元素列表。我们想要一个唯一条目的列表,并且我们希望根据第一次出现来保持这些条目的顺序。一个简单的字典构造函数应该可以解决问题:

ls = "Beautiful is better than ugly. Explicit..."
uniques = list({s:0 for s in ls})

>>> ['B', 'e', 'a', 'u', 't', 'i', 'f', 'l', ' ', 's', 'b', 'r', 'h', 'n', 'g', 'y', '.', 'E', 'x', 'p', 'c']

这将保留首次出现的顺序并删除所有重复项。

我想知道社区对这个用例和一般顺序保留功能的看法。

  • 有什么理由不应该使用这种方法吗?
  • 有没有更好的方法来解决这个问题?
  • 这个方法是 Pythonic 的吗?

通读Python之禅,内心矛盾。该方法很简单,但依赖于隐式排序。

请告诉我您的想法。谢谢。

最佳答案

这种使用 Python 3.7 字典作为保序重复数据删除的方法已由核心 Python 开发人员审查 here .没有比这更好的推荐了。

Is there any reason this method shouldn't be used?

没有。

Are there better ways to solve this problem?

没有。

Is this method Pythonic?

是的。

The method is simple but relies on implicit ordering.

您的问题被标记为 python-3.7。保留插入顺序的字典是有保证的,因此这里没有隐式排序。

关于python - 使用有序字典作为有序集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51145707/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com