python对字典排序
⑴ python字典中根据值的大小,按顺序排列键有什么方法
s={"a":"bb","b":"cc","c":"aa"}
deffun(s):
d=sorted(s.iteritems(),key=lambdat:t[1],reverse=False)
returnd
d=fun(s)
printd
iteritems() 得到的[(键,值)]的列表, 通过sorted方法,指定排序的键值key是原来字典中的value属性,其中用到了匿名函数lambda, 参数为t列表,返回第二个元素t[1],也就是每个键值对中的value, 从小到大排序时 reverse=False,从大到小排序是True!
⑵ python 字典排序
dict_a={0:5,1:4,2:5,3:4,4:2,5:2,6:2,7:0,8:2,9:0,10:2,11:0,12:0,13:4,14:0,15:0,16:0,17:0,18:0,19:0,20:0,21:0,22:0,23:2,24:3,25:2,26:0,27:1,28:1,29:0,30:2,31:3,32:3,33:3}
dict_b=sorted(dict_a.iteritems(),key=lambdad:d[1],reverse=True)
printdict_a
printdict_b
foriinrange(5):
printdict_b[i][0]
⑶ python字典是否有序
默认情况下Python的字典输出顺序是按照键的创建顺序。
字典的无序是指,不能人为重新排序。
比如说你按键值1,2,3,4的顺序创建的字典,只能由解析器按创建顺序,还是1,2,3,4的输出。
你无法控制它按照4,3,2,1的顺序输出,你也无法做到1,3,2,4的顺序。
而且这个输出顺序是也不是能真正按照创建顺序可以控的。
这里面有两个影响因素:
(1)键值的哈希碰撞,hash(key1) == hash(key2)时,向字典里连续添加的这个两个键的顺序是不可以控制的,也是无法做到连续的,后来的键会按算法调整到其它位置。
(2)字典空间扩容,当键的数量超过字典默认开的空间时,字典会做空间扩容,扩容后的键顺和创建顺序就会发生变化,不受人为控制。
⑷ Python字典排序问题
python3.7以上默认是按照你添加字典项目的顺序,而不会给你排序
python3.6以下连插入顺序都是不保证的
⑸ python 字典排序问题 有如下字典,怎么通过key最后面的数字排序,求大神指教。
python中字典存储是无序的,不像元组或列表那样需要通过顺序来取值。字典存储类型为key/value、一个键一个值,取值需要key,获取key用值。没明白你说的“通过key最后面的数字排序”是什么意思,详细描述一下需求
⑹ Python字典嵌套字典排序,该怎么处理
感觉这个需求有些许问题,因为通常对比排序的都是同一类型的数据,譬如aaa代表是年龄,bbb代表的是工资,等等... 所以不会拿自己的年龄和工资作一次排序。
# 要做的话,可以手动给它并成一个新列‘sort_key’。 obj就是你最外层的a,免得同名混淆
for i in obj:
obj[i]['sort_key'] = obj[i].values()[0]
# 目的是构造出这样的结构:
# ('c', {'sort_key': 1, 'ccc': 1}), ('d', {'sort_key': 2, 'ddd': 2}), .....)
print(sorted(obj.items(), key = lambda x:x[1]['sort_key']))
⑺ python中字典能排序吗
用标准的dict生成的字典是无序的。但python在标准库中提供了ordereddict,它提供了有序字典的数据结构。
⑻ python 字典排序 字典序排序是什么意思
字典就是包含key:value对的集合
比如
L = [{"name": "zhangsan", "birth":19920208, "gender":"m"}, {"name": "lisi", "birth":19900609, "gender":"m"}, {"name": "wanghong", "birth":19950907, "gender":"f"}]
对字典排序就是对列表进行排序后打印:
from operator import itemgetter
L = sorted(L,key=itemgetter('birth'),reverse=True)
for i in range(0,len(L)):
... print("Name: {:10} Gender: {:2} Birth: {}".format(L[i]["name"],L[i]["gender"],L[i]["birth"]))
⑼ python字典怎么排序
python字典怎么排序?
定义一个字典类型
mydict = {2: '小路', 3: '黎明', 1: '郭富城', 4:'周董'}
可分别打印 key和value 看一下数据
按KEY排序,使用了 lambda和 reverse= False(正序)
key和value都输出
reverse= True(逆序)
按value排序,汉字次序不是按拼音输出
sorted并不改变字典本身的数据次序。
输出后为列表和元组
可以 A = sorted(mydict.items(),key = lambda mydict:mydict[1],reverse= False) 赋值给A ,A的次序是变化后的
推荐:《Python教程》
注意事项
sorted并不改变字典本身的数据次序
如果要变化后的 可以赋值给另一个列表变量以上就是小编分享的关于python字典怎么排序的详细内容希望对大家有所帮助,更多有关python教程请关注环球青藤其它相关文章!
⑽ Python中字典按照指定列表的顺序排列
roles=["OWNER","RCOM","HRGDL2","HRM","HRH","MP","HP","VP","GM"]
info={"VP":"80003","HRM":"F140019","MP":"F130008","HRGDL2":"F140390","OWNER":"F133255","RCOM":"F900151","GM":"00903","HP":"80355","HRH":"81453"}
sorted_dict=map(lambdax:{x:info[x]},roles)
print(sorted_dict)