本文實例講述了Python實現(xiàn)對字典分別按鍵(key)和值(value)進行排序的方法。分享給大家供大家參考,具體如下:
方法一:
#使用sorted函數(shù)進行排序'''sorted(iterable,key,reverse),sorted一共有iterable,key,reverse這三個參數(shù);其中iterable表示可以迭代的對象,例如可以是dict.items()、dict.keys()等key是一個函數(shù),用來選取參與比較的元素,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())#輸出結(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、對字典按值(value)進行排序
#對字典按值(value)進行排序(默認由小到大)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)進行排序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)]附:operator庫常用函數(shù)說明
| 操作 | 語法 | 函數(shù) |
|---|---|---|
| 相加 | a + b | add(a, b) |
| 字符串拼接 | seq1 + seq2 | concat(seq1, seq2) |
| 包含測試 | 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ù)運算 | a ** b | pow(a, b) |
| 識別 | a is b | is_(a, b) |
| 識別 | 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) |
| 負數(shù) | -a | neg(a) |
| 非運算 | not a | not_(a) |
| 正數(shù) | + a | pos(a) |
| 右移運算 | 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) |
| 真值測試 | 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) |
希望本文所述對大家Python程序設(shè)計有所幫助。
新聞熱點
疑難解答
圖片精選