㈠ 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中如何以dict的key排序輸出
#輸出的順序卻不是我們預想的那樣初始化的順序,查詢相關文獻得知,Python保證遍##歷字典所有元素,但不保證遍歷的順序,假如我們期望按預先的順序進行遍歷的話,#我目前找到一個辦法,就是通過兩個List分別存儲Key和Value,然後通過zip合並為Dic#tionary,再遍歷:
# 通過zip方法合並兩個List為Dictionary
# 遍歷會按原先的順序
keys = ["b", "a", "c", "e", "d"]
values = ["2", "1", "3", "5", "4"]
for key,value in zip(keys, values):
print(key,value)
# -- OUTPUT --
# b 2
# a 1
# c 3
# e 5
# d 4
㈢ 求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字典怎麼排序
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,如圖,為啥key參數的形式一定要寫成上面那樣,不能寫成下面那樣
寫成下面意義不同,上面那個是通過key取出value進行排序,
下面設計直接對key排序
㈥ 求助:python元組作為字典的key的排序問題
disks_info=[{u'diskname':u'/dev/vda',u'disktype':u'HDD',u'tag':[u'mounted',u'boot'],u'slotnum':None,u'rpm':7200,u'size':50},{u'diskname':u'/dev/vdb',u'disktype':u'HDD',u'tag':[u'osd_data'],u'slotnum':None,u'rpm':7200,u'size':30},{u'diskname':u'/dev/vdc',u'disktype':u'HDD',u'tag':[u'osd_data'],u'slotnum':None,u'rpm':7200,u'size':30},{u'diskname':u'/dev/vdd',u'disktype':u'HDD',u'tag':[u'osd_data'],u'slotnum':None,u'rpm':7200,u'size':30},{u'diskname':u'/dev/vde',u'disktype':u'HDD',u'tag':[u'osd_data'],u'slotnum':None,u'rpm':7200,u'size':30},{u'diskname':u'/dev/vdf',u'disktype':u'HDD',u'tag':[u'osd_data'],u'slotnum':None,u'rpm':7200,u'size':30}]
disks_info_sorted=sorted(disks_info,key=lambdax:x[u'size'],reverse=True)
print(disks_info_sorted)
㈦ python 字典排序問題 有如下字典,怎麼通過key最後面的數字排序,求大神指教。
python中字典存儲是無序的,不像元組或列表那樣需要通過順序來取值。字典存儲類型為key/value、一個鍵一個值,取值需要key,獲取key用值。沒明白你說的「通過key最後面的數字排序」是什麼意思,詳細描述一下需求
㈧ python列表排序方法
列表的sort方法就是用來進行排序的。
主要就是兩個參數,key,reverse
先說reverse,這個很簡單,就是指出是否進行倒序排序:一般情況下,1排在2的前面,而倒序則相反。
key參數:一般它是一個函數,它接受列表中每一個元素,返回一個可用用於比較的值。
s=[1,2,3,4,5]
s.sort(key=lambda _: _**2%7)
print(s)
輸出的是:[1, 3, 4, 2, 5]
如果看不懂lambda表達式,可以看這一段等價的寫法:
def myfn(x):
....return (x * x) % 7
s=[1,2,3,4,5]
s.sort(key=myfn)
print(s)
輸出的結果是一樣的。
key使用的函數可以是自定義函數也可以pytho內置的函數,或者是某個類或者實例的方法,只要它能接受一個參數,返回一個可比較的值即可。比如這樣:
s=[[1,2,4],[3,3,5],[1,1,1],[5,7,9]]
s.sort(key=max) # 直接使用max函數作為排序依據
print(s)
[[1, 1, 1], [1, 2, 4], [3, 3, 5], [5, 7, 9]]
㈨ python 的sorted用法,按照特定的序列排序。如下文,請知道的大大詳細解釋下key代表的什麼。
sorted(list,key=dic_be_ranked.__getitem__)
㈩ python排序問題
s = [9, 2, -4, 7, -1, 0, 5, -2, -5]
def sort_abs(s):
s2 = []
for i in s:
s2.append(abs(i))
s2.sort()
for j in range(len(s2)):
try:
if s2[j] == s2[j + 1]:
s2[j] = -s2[j]
except:
break
return s2
print(s)
print(sort_abs(s))