Скобка для значений в словаре Python 3 - PullRequest
0 голосов
/ 13 февраля 2019

Мне интересно, как я могу управлять скобками [] для значений этого ключа.Например, словарь с именем "diamond", который содержит = {'a': 'Roger', 'c': 'Rafael', 'b': 'Roger'}.Я должен реорганизовать данные в алмаз, чтобы они стали rediamond = {'Rafael': ['c'], 'Roger': '[' a ',' b ']'}.

Мой код

def group_by_owners(files):
store = dict()
for key,value in files.items():
    if value in store:
        store[value]=(store[value], [key])
    else:
        store[value]=[key]
return store

files = {
'a': 'Rafael',
'b': 'Roger',
'c': 'Roger'
}   
print(group_by_owners(files))

Мой вывод

{'Rafael': (['a']), 'Roger': ['b'],['c']}

Ожидаемый вывод

{{'Rafael': (['a']), 'Roger': ['b','c']}

Так что если для Роджера должно быть 3 значения,это должно быть организовано как ['', '', ''].

1 Ответ

0 голосов
/ 13 февраля 2019

Вы должны использовать defaultdict:

from collections import defaultdict

diamond = {'a':'Roger', 'c':'Rafael', 'b':'Roger'}

rediamond = defaultdict(list)

for k, v in diamond.items():
    rediamond[v].append(k)
...