Python-如何按键对字典排序?

发布于 2021-02-02 23:24:24

这将是一个很好的方式,从去{2:3, 1:89, 4:5, 3:0}{1:89, 2:3, 3:0, 4:5}?
我检查了一些帖子,但它们都使用了返回元组的”sorted” 运算符。

关注者
0
被浏览
183
1 个回答
  • 面试哥
    面试哥 2021-02-02
    为面试而生,有面试问题,就找面试哥。

    标准Python字典是无序的。即使你对(key,value)对进行了排序,也无法以dict保留顺序的方式存储它们。

    最简单的方法是使用OrderedDict,它可以记住元素插入的顺序:

    In [1]: import collections
    
    In [2]: d = {2:3, 1:89, 4:5, 3:0}
    
    In [3]: od = collections.OrderedDict(sorted(d.items()))
    
    In [4]: od
    Out[4]: OrderedDict([(1, 89), (2, 3), (3, 0), (4, 5)])
    

    没关系od打印方式;它会按预期工作:

    In [11]: od[1]
    Out[11]: 89
    
    In [12]: od[3]
    Out[12]: 0
    
    In [13]: for k, v in od.iteritems(): print k, v
       ....: 
    1 89
    2 3
    3 0
    4 5
    

    Python 3

    对于Python 3用户,需要使用.items()而不是.iteritems():

    In [13]: for k, v in od.items(): print(k, v)
       ....: 
    1 89
    2 3
    3 0
    4 5
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看