python - 根据列表中值的顺序对键进行排序
问题描述
在 Python 中,我有一个字典,并希望它根据与字典中存储在列表中的键匹配的值的顺序进行排序。假设如下:
value_dict = {"Alpha": "The Alpha", "Beta": "The Beta", "Gamma": "The Gamma"}
key_order = ["Beta", "Gamma", "Alpha"]
所以在这种情况下,我希望对字典进行排序,以便键“Beta”首先出现,然后是“Gamma”,然后是“Alpha”。
有什么好主意我会怎么做?
解决方案
value_dict = {"Alpha": "The Alpha", "Beta": "The Beta", "Gamma": "The Gamma"}
key_order = ["Beta", "Gamma", "Alpha"]
# OrderedDict will keep the sequence intact
from collections import OrderedDict
OrderedDict(zip(key_order, [value_dict[i] for i in key_order]))
# OrderedDict([('Beta', 'The Beta'),
# ('Gamma', 'The Gamma'),
# ('Alpha', 'The Alpha')])
推荐阅读
- java - seekbarpreference 库 com.yokkomi:seekbar-preference:1.0 返回默认值
- android - 协调器布局和其他一些布局在迁移到 androidX 后不起作用
- javascript - 使用 Ajax 发送对象数组并从 nodejs 服务器读取它
- javascript - 从里程碑更新到任务 Highcharts 甘特图
- javascript - Highchart Bubble 不显示工具提示
- android - 如何找到用于手动测试的 android 应用程序的代码覆盖率?
- symfony4 - 如何创建可以根据实体当前状态拒绝的自定义更新操作?
- android - 如何使用 ffmpeg 减少长视频中的执行时间
- laravel - Laravel:如何为多个域创建路由
- r - 向网格中的每个构面添加一条线