Python實(shí)現(xiàn)對(duì)字典分別按鍵(key)和值(value)進(jìn)行排序的方法分析
本文實(shí)例講述了Python實(shí)現(xiàn)對(duì)字典分別按鍵(key)和值(value)進(jìn)行排序的方法。分享給大家供大家參考,具體如下:
方法一:
#使用sorted函數(shù)進(jìn)行排序
'''
sorted(iterable,key,reverse),sorted一共有iterable,key,reverse這三個(gè)參數(shù);
其中iterable表示可以迭代的對(duì)象,例如可以是dict.items()、dict.keys()等
key是一個(gè)函數(shù),用來(lái)選取參與比較的元素,reverse則是用來(lái)指定排序是倒序還是順序,reverse=true則是倒序,
reverse=false時(shí)則是順序,默認(rèn)時(shí)reverse=false。
'''
#初始化字典
dict_data={6:9,10:5,3:11,8:2,7:6}
1、對(duì)字典按鍵(key)進(jìn)行排序
#對(duì)字典按鍵(key)進(jìn)行排序(默認(rèn)由小到大) test_data_0=sorted(dict_data.keys()) #輸出結(jié)果 print(test_data_0) #[3, 6, 7, 8, 10] test_data_1=sorted(dict_data.items(),key=lambda x:x[0]) #輸出結(jié)果 print(test_data_1) #[(3, 11), (6, 9), (7, 6), (8, 2), (10, 5)]
2、對(duì)字典按值(value)進(jìn)行排序
#對(duì)字典按值(value)進(jìn)行排序(默認(rèn)由小到大)
test_data_2=sorted(dict_data.items(),key=lambda x:x[1])
#輸出結(jié)果
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)
#輸出結(jié)果
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)進(jìn)行排序
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)進(jìn)行排序
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)]
附:operator庫(kù)常用函數(shù)說(shuō)明
| 操作 | 語(yǔ)法 | 函數(shù) |
|---|---|---|
| 相加 | a + b | add(a, b) |
| 字符串拼接 | seq1 + seq2 | concat(seq1, seq2) |
| 包含測(cè)試 | obj in seq | contains(seq, obj) |
| 普通除法 | a / b | truediv(a, b) |
| 取整除法 | a // b | floordiv(a, b) |
| 按位與 | a & b | and_(a, b) |
| 按位異或 | a ^ b | xor(a, b) |
| 按位取反 | ~ a | invert(a) |
| 按位或 | a | b | or_(a, b) |
| 指數(shù)運(yùn)算 | a ** b | pow(a, b) |
| 識(shí)別 | a is b | is_(a, b) |
| 識(shí)別 | a is not b | is_not(a, b) |
| 索引賦值 | obj[k] = v | setitem(obj, k, v) |
| 索引刪除 | del obj[k] | delitem(obj, k) |
| 索引 | obj[k] | getitem(obj, k) |
| 左移 | a << b | lshift(a, b) |
| 取模 | a % b | mod(a, b) |
| 乘法 | a * b | mul(a, b) |
| 負(fù)數(shù) | -a | neg(a) |
| 非運(yùn)算 | not a | not_(a) |
| 正數(shù) | + a | pos(a) |
| 右移運(yùn)算 | a >> b | rshift(a, b) |
| 切片賦值 | seq[i:j] = values | setitem(seq, slice(i, j), values) |
| 切片刪除 | del seq[i:j] | delitem(seq, slice(i, j)) |
| 切片 | seq[i: j] | getitem(seq, slice(i, j)) |
| 字符串格式化 | s % obj | mod(s, obj) |
| 減法 | a - b | sub(a, b) |
| 真值測(cè)試 | obj | truth(obj) |
| 小于 | a < b | lt(a, b) |
| 小于等于 | a <= b | le(a, b) |
| 等于 | a == b | eq(a, b) |
| 不等于 | a != b | ne(a, b) |
| 大于等于 | a >= b | ge(a, b) |
| 大于 | a > b | gt(a, b) |
PS:這里再為大家推薦一款關(guān)于排序的演示工具供大家參考:
在線動(dòng)畫(huà)演示插入/選擇/冒泡/歸并/希爾/快速排序算法過(guò)程工具:
http://tools.jb51.net/aideddesign/paixu_ys
更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專(zhuān)題:《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python列表(list)操作技巧總結(jié)》、《Python編碼操作技巧總結(jié)》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》及《Python入門(mén)與進(jìn)階經(jīng)典教程》
希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。
- python3.0 字典key排序
- 詳解python的sorted函數(shù)對(duì)字典按key排序和按value排序
- python字典值排序并取出前n個(gè)key值的方法
- Python使用sorted對(duì)字典的key或value排序
- Python實(shí)現(xiàn)字典排序、按照l(shuí)ist中字典的某個(gè)key排序的方法示例
- Python實(shí)現(xiàn)的字典排序操作示例【按鍵名key與鍵值value排序】
- Python實(shí)現(xiàn)字典按key或者value進(jìn)行排序操作示例【sorted】
- python字典根據(jù)key排序的實(shí)現(xiàn)
相關(guān)文章
django啟動(dòng)uwsgi報(bào)錯(cuò)的解決方法
這篇文章主要給大家介紹了關(guān)于django啟動(dòng)uwsgi報(bào)錯(cuò)的解決方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。2018-04-04
Python?Pandas教程之series 上的轉(zhuǎn)換操作
這篇文章主要介紹了Python?Pandas教程之series上的轉(zhuǎn)換操作,文章通過(guò)圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-09-09
keras分類(lèi)之二分類(lèi)實(shí)例(Cat and dog)
這篇文章主要介紹了keras分類(lèi)之二分類(lèi)實(shí)例(Cat and dog),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-07-07
Python unittest工作原理和使用過(guò)程解析
這篇文章主要介紹了Python unittest工作原理和使用過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-02-02
在Django中進(jìn)行用戶(hù)注冊(cè)和郵箱驗(yàn)證的方法
這篇文章主要介紹了在Django中進(jìn)行用戶(hù)注冊(cè)和郵箱驗(yàn)證的方法的相關(guān)資料,需要的朋友可以參考下2016-05-05
PyTorch中 tensor.detach() 和 tensor.data 的區(qū)別詳解
今天小編就為大家分享一篇PyTorch中 tensor.detach() 和 tensor.data 的區(qū)別詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-01-01
Python結(jié)合OpenCV和Pyzbar實(shí)現(xiàn)實(shí)時(shí)攝像頭識(shí)別二維碼
這篇文章主要為大家詳細(xì)介紹了如何使用Python編程語(yǔ)言結(jié)合OpenCV和Pyzbar庫(kù)來(lái)實(shí)時(shí)攝像頭識(shí)別二維碼,文中的示例代碼講解詳細(xì),需要的可以參考下2024-01-01

