首页 > 解决方案 > 将键:值对拆分为字典中的两对的最佳方法-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]}

但我认为这不是有效的,

所以我希望你们中的一个人能给出更好的解决方案。

标签: pythonpython-3.xdictionarysplitkey

解决方案


只需使用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("-")}

推荐阅读