как извлечь данные в dict и распечатать их построчно? - PullRequest
0 голосов
/ 06 августа 2020

У меня есть словарь, и мне нужно извлечь значение, сгруппировать его по одному ключу и распечатать. Моя проблема в том, что я не знаю, как l oop внутри dict и сгруппировать его.

dicts=[{0: 'ATO'}, {1: 'CC'}, {1: 'CD'}, {2: 'GYU'}, {2: 'JOI'}, {3: 'AFD'}]
data =[value for line in dicts for key, value in line.items() if key == 0]
for t in data:
    print(t)

мой результат

ATO

мой ожидаемый результат

ATO
CC, CD
GYU, JOI
AFD

Ответы [ 2 ]

0 голосов
/ 06 августа 2020

Использование itertools.groupby

for g in groupby(dicts, key=lambda x: list(x.keys())[0]):
    print(' '.join(list(d.values())[0] for d in g[1]))

Вывод:

ATO
CC CD
GYU JOI
AFD
0 голосов
/ 06 августа 2020

Создайте новый словарь, ключи которого являются ключами исходных словарей, а значения - списками соответствующих значений.

dicts=[{0: 'ATO'}, {1: 'CC'}, {1: 'CD'}, {2: 'GYU'}, {2: 'JOI'}, {3: 'AFD'}]
values = {}
for d in dicts:
    for key, val in d.items():
        if key in values:
            values[key].append(val)
        else:
            values[key] = [val]

for val in values.values():
    print(", ".join(val))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...