python中键值对D={'a':1,'b':2,'c':3}是没有排序的。每次输出D显示均显 ...

发布网友 发布时间:2022-04-23 08:36

我来回答

4个回答

热心网友 时间:2022-04-18 18:42

字典本身就是无序的,想让字典排序可以使用

sorted(dic,value,reverse)函数

按照键值排序:
print sorted(D.iteritems(),key = lambda asd:asd[0])                
[('a', 1), ('b', 2), ('c', 3)]

print sorted(D.iteritems(),key = lambda asd:asd[0],reverse=True)
[('c', 3), ('b', 2), ('a', 1)]

按照values排序:
print sorted(D.iteritems(),key = lambda asd:asd[1])             
[('a', 1), ('b', 2), ('c', 3)]

print sorted(D.iteritems(),key = lambda asd:asd[1],reverse=True)
[('c', 3), ('b', 2), ('a', 1)]

热心网友 时间:2022-04-18 20:00

在同一个运行环境下,因为其初始化机制一样,所以相同。

热心网友 时间:2022-04-18 21:35

键值对Dict本来就是无序的,要有序的话就用OrderedDict

热心网友 时间:2022-04-18 23:26

dict是一种散列表结构,就是说数据输入后按特征已经被散列了,有自己的顺序。本身不记录原输入顺序。
如果一定需要输入顺序,建议
方案1,不使用dict,使用元组的列表,比如[('sam',''),('beta',''),('ccc',''),('abc','')]
这种结构是记录输入顺序的、有序的,也能方便地转换成dict。

方案2,另用一列表记录下输入时的顺序,比如['sam','beta','ccc',,'abc']追问我想问的是你说的这个“自己的顺序”的原理。。。

追答哦,散列算法啊,这个很多书上都有讲。hash算法,冲突检测算法。你查查就知道了。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com