簡體   English   中英

按鍵對從python字典中提取的數據進行排序

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM