⑴ python 字典怎麼轉成兩個列表,一個是key的,一個
在Python中,如果你希望將一個字典轉換為兩個列表,一個列表包含所有的鍵,另一個列表包含所有的值,你可以按照以下方式操作。假設你有一個字典a如下所示:
a = {1: 'a', 3: 'b', 5: 'c'}
通過調用字典的keys()和values()方法,你可以獲取到字典的所有鍵和值。然後將這兩個方法的結果分別賦值給兩個變數,如b和c。
具體代碼如下:
b, c = a.keys(), a.values()
這樣,b將包含字典a中的所有鍵,而c將包含字典a中的所有值。需要注意的是,b和c將返回可迭代對象,如果你想將它們轉換為列表,可以使用list()函數:
b = list(a.keys())
c = list(a.values())
這樣,b和c將分別成為包含字典a鍵和值的列表。
在實際應用中,這種操作非常有用。例如,當你需要對字典中的鍵和值分別進行操作或排序時,將它們轉換為列表後,可以更方便地進行處理。
此外,你還可以使用zip()函數將字典的鍵和值合並為一個列表的元組。具體操作如下:
keys_and_values = list(zip(a.keys(), a.values()))
這樣,keys_and_values將是一個包含元組的列表,每個元組的第一個元素是字典的鍵,第二個元素是對應的值。
總之,將字典轉換為鍵的列表和值的列表是一種常見的操作,它可以幫助你更好地處理字典中的數據。
⑵ 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字典嵌套字典排序,該怎麼處理
感覺這個需求有些許問題,因為通常對比排序的都是同一類型的數據,譬如aaa代表是年齡,bbb代表的是工資,等等... 所以不會拿自己的年齡和工資作一次排序。
# 要做的話,可以手動給它並成一個新列『sort_key』。 obj就是你最外層的a,免得同名混淆
for i in obj:
obj[i]['sort_key'] = obj[i].values()[0]
# 目的是構造出這樣的結構:
# ('c', {'sort_key': 1, 'ccc': 1}), ('d', {'sort_key': 2, 'ddd': 2}), .....)
print(sorted(obj.items(), key = lambda x:x[1]['sort_key']))