繁体   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