python - 根据有序列表中的键对字典值进行排序

标签 python list dictionary

假设我有以下字典:

FruitValues={'Banana':3, 'Orange':4, 'Apple':1}

我有一个字典的键列表,按照我想保留的顺序排列:

SortOrder=['Orange', 'Apple', 'Banana']

按列表顺序从字典中获取值列表的最有效方法是什么?

现在我的方法如下:

OrderedValues=[]
for Fruit in SortOrder:
    OrderedValues.append(FruitValues[Fruit])
print OrderedValues

[4, 1, 3]

是否有更好/更清洁的方法来做到这一点?也许使用字典理解?

最佳答案

使用列表理解:

>>> [FruitValues[i] for i in SortOrder]
[4, 1, 3]

关于python - 根据有序列表中的键对字典值进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31884425/

相关文章:

c++ - 从 std::list 中移除具有特定值的元素

python - 不可哈希类型 : list

python - 从所有字典值中获取第 n 个元素 - Python

python - 保存对 xlsxwriter 工作簿的更改,无需关闭或停止程序

java - 合并具有相同日期和 ID 的两个列表中的所有元素并总结它们的成本

python - 主窗口小部件调整大小(Pyside)

python - 计算深度或嵌套列表的最深级别

python - 基于键和值的嵌套字典的条件递归搜索

python - 在应用程序上下文之外获取配置变量

python - 两个或多个数据框的完全外部连接