既然 Python 3.7 使保留顺序的字典正式成为语言规范的一部分,而不是实现细节,我一直在努力思考如何最好地使用这个属性。今天,我发现我需要一个订单保留集,并认为字典可以解决问题。
假设我们有一个可散列元素的列表。我们想要一个唯一条目的列表,并且我们希望根据第一次出现来保持这些条目的顺序。一个简单的字典构造函数应该可以解决问题:
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之禅,我很矛盾。该方法很简单,但依赖于隐式排序。
请让我知道你的想法。谢谢你。