python - Python如何将这种类型的列表转换为字典
问题描述
[["4040", ["4040", "1.04862754", 4]], ["4040.1", ["4040.1", "0.25906621", 1]], ["4040.2", ["4040.2", "0.954", 1]]]
我想要的是:
{"4040": ["4040", "1.04862754", 4]}, {"4040.1": ["4040.1", "0.25906621", 1]}, {"4040.2": ["4040.2", "0.954", 1]}
我想以 json 格式将此数据发送到 redis,但在转换时遇到了困难。实际上我已经在字典中写入了这些数据,但是在发送到 redis 之前我需要对键进行排序,以便 python 将其转换为列表
解决方案
使用切片:
print({x[0]: x[1:] for x in lst})
输出:
{'4040': [['4040', '1.04862754', 4]], '4040.1': [['4040.1', '0.25906621', 1]], '4040.2': [['4040.2', '0.954', 1]]}
或者
print(dict(lst))
输出:
{'4040': ['4040', '1.04862754', 4], '4040.1': ['4040.1', '0.25906621', 1], '4040.2': ['4040.2', '0.954', 1]}
或者
如果您想要分隔的字典列表:
print([{x[0]: x[1]} for x in lst])
输出:
[
{'4040': ['4040', '1.04862754', 4]}, {'4040.1': ['4040.1', '0.25906621', 1]}, {'4040.2': ['4040.2', '0.954', 1]}
]
或者
(通常事情很简单,但我们自己把它们复杂化)
print([{k:v} for k, v in lst])
输出:
[
{'4040': ['4040', '1.04862754', 4]}, {'4040.1': ['4040.1', '0.25906621', 1]}, {'4040.2': ['4040.2', '0.954', 1]}
]
推荐阅读
- typescript - 你能让 TS 从被赋值的值中推断出变量的泛型类型参数吗?
- ansible - 如何在 Ansible 中使用 with_items 组合字典列表
- sql - Oracle 对分区数计数
- python - 从不完整的html标签中提取元素
- sql - SQL 案例中的许多布尔表达式
- nullpointerexception - Nullpointerexception 尝试从空数组中读取
- c# - 像这样覆盖 SaveChanges 和 SaveChangesAsync 是否安全?
- aws-lambda - 如何使用请求 ID 调用 lambda 函数并更新运行状态?
- android - 如何通过按空格键将带有文本的芯片从 Edittext 动态添加到 Edittext?
- java - JSON结构中的运算符(和,或)