[英]Sorting data pulled from python dictionary by key
我正在嘗試建立一個包含字典中值的矩陣,我知道字典是無序的,但是我想根據中的鍵名按一定順序對矩陣中的值(可以排序)進行排序。詞典。
假設我有這樣的字典:
{'a': 1, 'b': 2, 'c': 3 }
還有一個鍵名列表,該鍵名順序是我希望排列矩陣中的數據:
['b', 'c'. 'a']
我如何使用上面的列表對字典中的值進行排序,使之得到如下列表:
[2, 3, 1]
在列表理解過程中無需明確提及每個鍵,就像這樣:
data = [ data['b'], data['c'], data['a'] for data in dict ]
我從中提取數據的字典有很多鍵,我寧願不使用上述方法從該字典中提取10-15個數據點。
我不確定您對這種理解的理解,但是請考慮:
In [1]: dict = {'a': 1, 'b': 2, 'c': 3 }
In [2]: keys = ['b', 'c', 'a']
In [3]: [dict[key] for key in keys]
Out[3]: [2, 3, 1]
我非常喜歡python的功能。 這是使用它們的一種很酷的方法:
d = {'a': 1, 'b': 2, 'c': 3 }
print map(lambda x: d[x], ['b', 'c', 'a'])
這應該給您您的解決方案。 它所做的是獲取所需數組的每個元素,並將其映射到字典中的相應值。 (基本上,它以功能性方式執行了您提到的操作)
希望能幫助到你!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.