Mhe*_*yan 0 python sorting dictionary
所以我有一个需要按值排序的字典。我使用以下 Python3 函数对它们进行排序,该函数将排序后的数据作为元组列表返回。
def sorter(data):
    return  sorted(data.items(), key=lambda kv: kv[1], reverse=True)
它完美地对数据进行排序,但是当我将此列表转换回字典时
dict(sorter(data))
它会丢失顺序并以完全随机的顺序返回字典。我在这里缺少什么?
Python 中的字典被实现为哈希表,它们本质上是无序的——或者更确切地说,它们是任意排序的,并且可以在任何修改时改变它们的顺序。
这在 Python 3.7中发生了变化,其中字典保持其插入顺序。但是依赖这个会让你的代码不那么便携。
OrderedDict如果要保持所有 Python 版本的顺序,请使用:
from collections import OrderedDict
OrderedDict(sorter(data))
| 归档时间: | 
 | 
| 查看次数: | 1154 次 | 
| 最近记录: |