python - 按字符串列表对字典列表进行排序

标签 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})]

关于python - 按字符串列表对字典列表进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60456212/

相关文章:

python - 如何使用sys.callstats?

python - 如何在另一个异步循环中使用异步循环

python - sqlalchemy.exc.NoSuchModuleError : Can't load plugin: sqlalchemy. 方言:postgres

python - 使用 Python 的标准输入问题

python - 使用 Mechanize 处理非标准 401 header

python - flask run 与 python

Python 正则表达式在输出中搜索并打印 'apostrophes' (')

python - 在线程上从 Python 调用 Julia

python - 如何让程序只有在按下回车键时才继续运行?

python - 为笔记本设置默认的 sys.path