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