python字典按值排序
㈠ python中字典能排序吗
用标准的dict生成的字典是无序的。但python在标准库中提供了ordereddict,它提供了有序字典的数据结构。
㈡ 在python中,给字典排序并画饼图
#coding=utf-8
importnumpyasnp
importmatplotlib.pyplotasplt
res={
11:234,
44:565,
22:453,
33:767,
55:890,
66:67,
77:88
}
labels=[]
fracs=[]
fork,vinres.items():
labels.append(str(k))
fracs.append(v)
explode=[0,0,0,0]#0.1凸出这部分,
plt.axes(aspect=1)#setthis,Figureisround,otherwiseitisanellipse
#autopct,showpercet
plt.pie(x=fracs,labels=labels,explode=None,autopct='%3.1f%%',
shadow=True,labeldistance=1.1,startangle=90,pctdistance=0.6
)
'''
labeldistance,文本的位置离远点有多远,1.1指1.1倍半径的位置
autopct,圆里面的文本格式,%3.1f%%表示小数有三位,整数有一位的浮点数
shadow,饼是否有阴影
startangle,起始角度,0,表示从0开始逆时针转,为第一块。一般选择从90度开始比较好看
pctdistance,百分比的text离圆心的距离
patches,l_texts,p_texts,为了得到饼图的返回值,p_texts饼图内部文本的,l_texts饼图外label的文本
'''
plt.show()
㈢ python怎么对字典进行排序
python 字典(dict)的特点就是无序的,按照键(key)来提取相应值(value),如果我们需要字典按值排序的话,那可以用下面的方法来进行:
1 下面的是按照value的值从大到小的顺序来排序。
dic = {'a':31, 'bc':5, 'c':3, 'asd':4, 'aa':74, 'd':0}
dict= sorted(dic.iteritems(), key=lambda d:d[1], reverse = True)
print dict
输出的结果:
[('aa', 74), ('a', 31), ('bc', 5), ('asd', 4), ('c', 3), ('d', 0)]
下面我们分解下代码
print dic.iteritems() 得到[(键,值)]的列表。
然后用sorted方法,通过key这个参数,指定排序是按照value,也就是第一个元素d[1的值来排序。reverse = True表示是需要翻转的,默认是从小到大,翻转的话,那就是从大到小。
2 对字典按键(key)排序:
dic = {'a':31, 'bc':5, 'c':3, 'asd':4, 'aa':74, 'd':0}
dict= sorted(dic.iteritems(), key=lambda d:d[0]) d[0]表示字典的键
print dict
㈣ python中字典如何按照value值排序,并分别取出前n个value值和key值
before={
"key1":5,
"key2":6,
"key3":4,
"key4":3,
}
#排序
after=dict(sorted(before.items(),key=lambdae:e[1]))
print(after)
#取出前几个,也可以在sorted返回的list中取前几个
cnt=0
forkey,valueinafter.items():
cnt+=1
ifcnt>required_cnt:
break
print("{}:{}".format(key,value))
㈤ Python之字典排序,这篇文章里,return的东西有点看不懂
return [value for key, value in items] #返回一个“由字典项的值组成的列表[]
比如字典items是{ 'a':0, 'b':1, 'c':2}
将返回[0,1,2]
return [adict[key] for key in keys] #将以字典keys的键作为字典adict的键,返回一个“由字典adict的值组成的列表[]
比如keys为{ 'a':0, 'b':1, 'c':2},adict为{ 'a':3, 'b':4, 'c':5}
将返回[3, 4, 5]
return map(adict.get,keys) #函数映射,把keys的键值逐个映射到adict.get函数,即用keys的键求adict的值,返回到一个遍历器。
执行list(map(adict.get,keys))得到[3,4,5] 顺序或有不同
㈥ python 字典顺序有序支持的版本
是3、9版本。
在新的版本中,python针对key的存储已经变为有序,在遍历和打印的时候,会按照存储的顺序进行取值。
再补充一点:之前介绍到,在字典中,key是唯一的。这里并不是说写了不唯一的key就会报错,只是会用后面的key和value去覆盖前面的key和value。
㈦ python涓镄勫瓧鍏告帓搴忓备綍瀹炵幇浠g爜璇存槑
杩欑瘒鏂囩珷涓昏佷粙缁崭简python瀛楀吀鎺掑簭瀹炵幇鏂规硶,瀹炰緥鍒嗘瀽浜哖ython瀛楀吀鎺掑簭镄勭浉鍏虫妧宸,闇瑕佺殑链嫔弸鍙浠ュ弬钥冧笅
链鏂囧疄渚嫔垎鏋愪简python瀛楀吀鎺掑簭镄勬柟娉曘傚垎浜缁椤ぇ瀹朵緵澶у跺弬钥冦傚叿浣揿备笅锛
1銆 鍑嗗囩煡璇嗭细
鍦╬ython閲岋纴瀛楀吀dictionary鏄鍐呯疆镄勬暟鎹绫诲瀷锛屾槸涓镞犲簭镄勫瓨鍌ㄧ粨鏋勶纴姣忎竴鍏幂礌鏄痥ey-value瀵癸细
濡傦细dict = {'username'锛'password'锛'database'锛'master'}锛屽叾涓'username'鍜'database'鏄痥ey锛岃'password'鍜'master'鏄痸alue锛屽彲浠ラ氲繃d[key]銮峰缑瀵瑰簲鍊纥alue镄勫紩鐢锛屼絾鏄涓嶈兘阃氲繃value寰楀埌key銆
瀵逛簬dictionnary锛岄渶鐭ラ亾浠ヤ笅鍑犵偣娉ㄦ剰浜嬮”锛
a銆 dictionary 镄 key 鏄澶у皬鍐欐晱镒熺殑锛
b銆 涓涓猟ictionary涓涓嶈兘链夐吨澶岖殑 key锛
c銆 dictionary鏄镞犲簭镄勶纴娌℃湁鍏幂礌椤哄簭镄勬傚康锛屽畠浠鍙鏄搴忓伓镄勭亩鍗曟帓鍒椼
2銆 瀛楀吀鎺掑簭瀹炵幇锛
鍓嶉溃宸茶存槑dictionary链韬娌℃湁椤哄簭姒傚康锛屼絾鏄镐绘槸鍦ㄦ煇浜涙椂鍊欙纴浣嗘槸鎴戜滑甯稿父闇瑕佸瑰瓧鍏歌繘琛屾帓搴忥纴镐庝箞锅氩憿锛熶笅闱㈠憡璇変綘锛
鏂规硶1锛氭渶绠鍗旷殑鏂规硶锛屾帓鍒楀厓绱(key/value瀵)锛岀劧钖庢写鍑哄笺傚瓧鍏哥殑items鏂规硶锛屼细杩斿洖涓涓鍏幂粍镄勫垪琛锛屽叾涓姣忎釜鍏幂粍閮藉寘钖涓瀵归”鐩钬斺旈敭涓庡瑰簲镄勫笺傛ゆ椂鎺掑簭鍙浠sort()鏂规硶銆
def sortedDictValues1(adict):
items = adict.items()
items.sort()
return [value for key, value in items]鏂规硶2锛氢娇鐢ㄦ帓鍒楅敭(key)镄勬柟寮忥纴鎸戝嚭鍊硷纴阃熷害姣旀柟娉1蹇銆傚瓧鍏稿硅薄镄刱eys()鏂规硶杩斿洖瀛楀吀涓镓链夐敭鍊肩粍鎴愮殑鍒楄〃锛屾″簭鏄闅忔満镄勚傞渶瑕佹帓搴忔椂鍙瑕佸硅繑锲炵殑阌鍊煎垪琛ㄤ娇鐢╯ort()鏂规硶銆
def sortedDictValues1(adict):
keys = adict.keys()
keys.sort()
return [adict[key] for key in keys]鏂规硶3锛氶氲繃鏄犲皠镄勬柟娉曞幓镟存湁鏁堢殑镓ц屾渶钖庝竴姝
def sortedDictValues1(adict):
keys = adict.keys()
keys.sort()
return map(adict.get,keys)鏂规硶4锛氩瑰瓧鍏告寜阌鎺掑簭锛岀敤鍏幂粍鍒楄〃镄勫舰寮忚繑锲烇纴钖屾椂浣跨敤lambda鍑芥暟𨱒ヨ繘琛岋绂
sorted(iterable[, cmp[, key[, reverse]]]
cmp鍜宬ey涓鑸浣跨敤lambda
濡傦细
>>> d={"ok":1,"no":2}#瀵瑰瓧鍏告寜阌鎺掑簭锛岀敤鍏幂粍鍒楄〃镄勫舰寮忚繑锲
>>> sorted(d.items, key=lambda d:d[0])
[('no', 2), ('ok', 1)]瀵瑰瓧鍏告寜鍊兼帓搴忥纴鐢ㄥ厓缁勫垪琛ㄧ殑褰㈠纺杩斿洖
>>> sorted(d.items, key=lambda d:d[1])
[('ok', 1), ('no', 2)]瀵瑰瓧鍏稿厓绱犵殑鎺掑簭铏界劧链夊ソ澶氱嶆柟娉曪纴杩欓噷涔熸病链夋荤粨鍏锛屼絾濡傛灉瀵圭▼搴忔晥鐜囨病链夊お楂樿佹眰锛岄夋嫨锽沧㈢殑鐢ㄥ氨濂姐