Лучший способ разделить пару ключ: значение на две пары в словаре - python - PullRequest
0 голосов
/ 19 ноября 2018

Итак, допустим, у меня есть словарь:

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 голосов
/ 19 ноября 2018

Просто используйте 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

Как понимание слова:

{new_k : v for k,v in d.items() for new_k in k.split("-")}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...