python - 将键:值对拆分为字典中的两对的最佳方法-python
问题描述
所以假设我有一本字典:
d={'a-b':[1,2,3],'c-d':[4,5,6]}
而且我想拆分键,即'a-b'
分成两个键'a'
和'b'
,并为两者保持相同的值等...
所以期望的输出应该是:
{'a': [1, 2, 3], 'b': [1, 2, 3], 'c': [4, 5, 6], 'd': [4, 5, 6]}
我知道我能做到(感谢@Netwave):
d={'a-b':[1,2,3],'c-d':[4,5,6]}
newd={}
for k,v in d.items():
x,y=k.split('-')
newd[x]=v
newd[y]=v
print(newd)
#{'a': [1, 2, 3], 'b': [1, 2, 3], 'c': [4, 5, 6], 'd': [4, 5, 6]}
但我认为这不是有效的,
所以我希望你们中的一个人能给出更好的解决方案。
解决方案
只需使用split
一次:
for k,v in d.items():
x, y = k.split("-")
newd[x] = v
newd[y] = v
或者遍历它:
for k,v in d.items():
for new_k in k.split("-")
newd[new_k] = v
作为 dict 理解:
{new_k : v for k,v in d.items() for new_k in k.split("-")}
推荐阅读
- angularjs - 创建响应式表格,以窄媒体尺寸隐藏标题
- c# - Xamarin 问题:错误 XA2002:无法解析引用:`System.Reactive` 引用的`System.Threading.Tasks.Extensions`
- css - Angular:引导程序无法触发选择选项,因为选项是使用 ngFor 动态绑定的
- swift - 将属性字符串保存到 RTF 文件不再保存属性
- angular - 如何在 Angular 7 中获取 http 后端错误响应正文?
- php - 如何在 MacOS Mojave 上配置 PHP Intl 扩展?
- python - 我有不同的 zip 文件,每个文件包含一个 csv 文件。如何解压缩每个文件夹,并将所有 csv 文件保存在一个文件夹中
- java - Hibernate:找到了多行具有给定标识符的行
- javascript - 将 ffmpeg 输出直接流式传输到调度程序
- terraform - Terraform 是 IBM Cloud 的官方基础架构即代码解决方案吗?