如何将每个键含2个值的Python字典拆分为两个字典?
在Python 3.7中拆分双值字典的方法
可以通过字典推导式快速实现这个需求,代码简洁高效,且能保留Python 3.7+字典的默认插入顺序。
具体实现
假设原字典为:
d = {'a': ['val1', 'val2'], 'b': ['val1', 'val2']}
提取每个键的第一个值生成d1
d1 = {key: values[0] for key, values in d.items()}
提取每个键的第二个值生成d2
d2 = {key: values[1] for key, values in d.items()}
结果验证
运行代码后,d1的结果为{"a": "val1", "b": "val1"},d2的结果为{"a": "val2", "b": "val2"},完全匹配需求。
注意事项
- 确保原字典中每个键对应的列表恰好包含2个元素,避免索引越界错误。如果存在长度不确定的列表,可添加判断条件,比如
{key: values[0] for key, values in d.items() if len(values) >= 2}。 - Python 3.7及后续版本的字典默认保留插入顺序,拆分后的字典键顺序会与原字典一致。
内容的提问来源于stack exchange,提问作者a11
相关产品推荐
相关产品推荐

