在字典中将key:value对拆分成两对的最佳方法-Python

时间:2018-11-19 05:59:06

标签: python python-3.x dictionary split key

所以说我有一本字典:

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]}

但是我不认为这是有效的,

所以我希望你们中的一个能提供更好的解决方案。

1 个答案:

答案 0 :(得分:4)

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