作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如何将每个键有 2 个值的字典拆分为两个字典,一个用于第一个值,一个用于第二个值?
也就是说,我如何将这个 d = {'a':['val1', 'val2'], 'b': ['val1', 'val2']}
变成:
d1 = {"a": "val1", "b": "val1"}
d2 = {"a": "val2", "b": "val2"}
python 3.7
最佳答案
这是对字典中所有值的简单列表理解,适用于任何列表长度(包括不匹配的长度——较短的列表不会在所有结果字典中表示):
>>> d = {'a':['val1', 'val2'], 'b': ['val1', 'val2']}
>>> n_dicts = [
... {k: v[i] for k, v in d.items() if i < len(v)}
... for i in range(max(len(v) for v in d.values()))
... ]
>>> n_dicts
[{'a': 'val1', 'b': 'val1'}, {'a': 'val2', 'b': 'val2'}]
如果需要,您当然可以将其解构为两个变量:
>>> d1, d2 = n_dicts
>>> d1
{'a': 'val1', 'b': 'val1'}
>>> d2
{'a': 'val2', 'b': 'val2'}
但将其保留为列表会使您的代码更容易处理不同数量的元素/字典。
关于python - 将每个键有 n 个值的字典拆分为 n 个字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74201070/
我是一名优秀的程序员,十分优秀!