Using ordered dictionary as ordered set(使用有序字典作为有序集)
本文介绍了使用有序字典作为有序集的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
现在,Python3.7编写了保持顺序的字典officially part of the language spec,而不是实现细节,我一直在想如何最好地使用这个属性。今天,我发现我需要一个保持秩序的集合,我想词典可能会做到这一点。
假设我们有一个Hasable元素列表。我们想要一个唯一条目的列表,并希望根据第一次出现来保持这些条目的顺序。一个简单的字典构造函数应该可以做到这一点:
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吗?
读着巨蟒的禅宗,我很矛盾。该方法简单,但依赖于隐式排序。
请告诉我你的想法。谢谢。
推荐答案
这种使用Python3.7词典作为保持顺序的重复数据删除的方法是由核心开发人员here审查的。你不可能得到比这更好的推荐了。
有什么原因不应该使用此方法吗?
否
有没有更好的方法来解决这个问题?
否
此方法是Pythonic吗?
是。
该方法简单,但依赖于隐式排序。
您的问题被标记为python-3.7。确保词典保持插入顺序,因此这里没有隐式顺序。
这篇关于使用有序字典作为有序集的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
沃梦达教程
本文标题为:使用有序字典作为有序集


基础教程推荐
猜你喜欢
- 使用 Google App Engine (Python) 将文件上传到 Google Cloud Storage 2022-01-01
- 如何在 Python 中检测文件是否为二进制(非文本)文 2022-01-01
- 使用Python匹配Stata加权xtil命令的确定方法? 2022-01-01
- Python 的 List 是如何实现的? 2022-01-01
- 如何在Python中绘制多元函数? 2022-01-01
- 使 Python 脚本在 Windows 上运行而不指定“.py";延期 2022-01-01
- 症状类型错误:无法确定关系的真值 2022-01-01
- 合并具有多索引的两个数据帧 2022-01-01
- 哪些 Python 包提供独立的事件系统? 2022-01-01
- 将 YAML 文件转换为 python dict 2022-01-01