所以说我有一本字典:
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]}
但是我不认为这是有效的,
所以我希望你们中的一个能提供更好的解决方案。
答案 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("-")}