使用有序字典作为有序集

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。确保词典保持插入顺序,因此这里没有隐式顺序。

这篇关于使用有序字典作为有序集的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

Leetcode 234: Palindrome LinkedList(Leetcode 234:回文链接列表)
How do I read an Excel file directly from Dropbox#39;s API using pandas.read_excel()?(如何使用PANDAS.READ_EXCEL()直接从Dropbox的API读取Excel文件?)
subprocess.Popen tries to write to nonexistent pipe(子进程。打开尝试写入不存在的管道)
I want to realize Popen-code from Windows to Linux:(我想实现从Windows到Linux的POpen-code:)
Reading stdout from a subprocess in real time(实时读取子进程中的标准输出)
How to call type safely on a random file in Python?(如何在Python中安全地调用随机文件上的类型?)