python - 按字符串列表对字典列表进行排序
问题描述
如何使用预定的字符串列表对字典列表进行排序
有序的字符串列表
["Apple", "Watermellon", "Orange", "Grape"]
收集的字典数据
{
"Grape": {"value": 3},
"Watermellon": {"value": 5},
"Orange": {"value": 8},
"Apple": {"value": 1}
}
所需的字典顺序...假设我必须将其转换为某种列表以保持顺序。
{
"Apple": {"value": 1},
"Watermellon": {"value": 5},
"Orange": {"value": 8},
"Grape": {"value": 3},
}
解决方案
如果不想依赖字典和python版本的插入顺序,可以把它变成排序列表,例如:
order = ["Apple", "Watermellon", "Orange", "Grape"]
data = {
"Grape": {"value": 3},
"Watermellon": {"value": 5},
"Orange": {"value": 8},
"Apple": {"value": 1}
}
ordered_data = sorted(data.items(), key=lambda item: order.index(item[0]))
print(ordered_data)
>>> [('Apple', {'value': 1}), ('Watermellon', {'value': 5}), ('Orange', {'value': 8}), ('Grape', {'value': 3})]
推荐阅读
- sql - 上周数据对比 SQL - Teradata
- sqlite - cordova-sqlite-storage 不适用于 Xcode 11.3
- c# - 在 msbuild 中设置 AssemblyName 后未找到程序集
- com - 无法使用 COM 加载文件或程序集“Microsoft.Extensions.DependencyInjection.Abstractions”
- python - 按多个关键字拆分字符串并创建字典
- scala - 分组后从元组中删除单词
- php - 将 WooCommerce 文本字符串“订单号”更改为“互联网订单号”
- jquery - jQuery UI 滑块:如何使滑块处理冲突在最小值/最大值下很好地工作?
- python - 在不知道 Python3 中的密钥的情况下对二进制文件进行 Vigenere 解密
- docker - Dockerized Celery worker 没有从 Localstack SQS 队列中获取任务