按键对字典排序:获取有序集合
Python 字典的本质是无序的,除非引入 Python 3.7。虽然对(键,值)对进行排序可能会作为一种解决方案,但重要的是要承认,在将元素存储回字典时保留排序顺序是不可行的。
无缝地建立基于键值,使用 OrderedDict 类是最佳方法。该类具有保留其元素插入顺序的独特能力:
import collections d = {2: 3, 1: 89, 4: 5, 3: 0} # Construct an OrderedDict from sorted key-value pairs od = collections.OrderedDict(sorted(d.items())) print(od) # OrderedDict([(1, 89), (2, 3), (3, 0), (4, 5)])
尽管 od 的打印表示可能有所不同,但它将在后续交互过程中保持所需的顺序:
print(od[1]) # 89 print(od[3]) # 0 for k, v in od.items(): print(k, v) # 1 89, 2 3, 3 0, 4 5
Python 3 用户的注意事项
Python 3 用户应该使用迭代 OrderedDict 时使用 .items() 方法而不是 .iteritems() 来保持兼容性:
for k, v in od.items(): print(k, v) # 1 89, 2 3, 3 0, 4 5
以上是如何从 Python 字典创建有序的集合?的详细内容。更多信息请关注PHP中文网其他相关文章!