使用sorted函數進行排序
sorted(iterable,key,reverse),sorted一共有iterable,key,reverse這三個參數;
其中iterable表示可以迭代的對象,例如可以是dict.items()、dict.keys()等
key是一個函數,用來選取參與比較的元素,reverse則是用來指定排序是倒序還是順序,reverse=true則是倒序,
reverse=false時則是順序,默認時reverse=false。
初始化字典
dict_data={6:9,10:5,3:11,8:2,7:6}
1、對字典按鍵(key)進行排序
對字典按鍵(key)進行排序(默認由小到大)
test_data_0=sorted(dict_data.keys())
輸出結果
print(test_data_0) #[3, 6, 7, 8, 10]
test_data_1=sorted(dict_data.items(),key=lambda x:x[0])
輸出結果
print(test_data_1) # [(3, 11), (6, 9), (7, 6), (8, 2), (10, 5)]
2、對字典按值(value)進行排序
#對字典按值(value)進行排序(默認由小到大)
test_data_2=sorted(dict_data.items(),key=lambda x:x[1])
#輸出結果
print(test_data_2) #[('8', 2), ('10', 5), ('7', 6), ('6', 9), ('3', 11)]
test_data_3=sorted(dict_data.items(),key=lambda x:x[1],reverse=True)
#輸出結果
print(test_data_3) #[('3', 11), ('6', 9), ('7', 6), ('10', 5), ('8', 2)]
方法二:
import operator
#初始化字典
dict_data={6:9,10:5,3:11,8:2,7:6}
#按鍵(key)進行排序
test_data_4=sorted(dict_data.items(),key=operator.itemgetter(0))
test_data_5=sorted(dict_data.items(),key=operator.itemgetter(0),reverse=True)
print(test_data_4) #[(3, 11), (6, 9), (7, 6), (8, 2), (10, 5)]
print(test_data_5) #[(10, 5), (8, 2), (7, 6), (6, 9), (3, 11)]
#按值(value)進行排序
test_data_6=sorted(dict_data.items(),key=operator.itemgetter(1))
test_data_7=sorted(dict_data.items(),key=operator.itemgetter(1),reverse=True)
print(test_data_6) #[(8, 2), (10, 5), (7, 6), (6, 9), (3, 11)]
print(test_data_7) #[(3, 11), (6, 9), (7, 6), (10, 5), (8, 2)]
demo:
現有字典d={'a':24, 'b':32, "c":12}請分別按字典只中的key、value排序?
sorted(iterable, key, reverse) 三個參數,iterable是可迭代對象,key是一個函數,用來選取參與比較的元素,reverse則是用來指定排序是倒序還是正序, 默認reverse=False.
按key排序(只是輸出的key值的排序列表):
sorted(d.keys(), reverse=True/False)
按value排序(只是輸出的value值的排序列表):
sorted(d.values(), reverse=True/False)
sorted函數返回值是list,上述兩種也可以用於提取key或value的列表
按key:value中的key排序:
sorted(d.items(),key=lambda item:item[0], reverse=True/False) 輸出[(key,value), (key,value)]的排序
按key:value中的value排序排序:
sorted(d.items(),key=lambda item:item[1], reverse=True/False) 輸出[(key,value), (key,value)]的排序
