Python Словарь с несколькими ключами с проблемой одного и того же имени - PullRequest
0 голосов
/ 07 мая 2020

Мне нужен небольшой совет по преобразованию информации из файла в словарь.

fruit.txt

Apple,5
Orange,6
Pear,10
Orange,2
Apple,1

Результат должен быть:

{'Apple': [5, 1], 'Orange': [6,2], 'Pear': [10]}

Насколько я понимаю, словарь не может содержать больше, чем одно значение с таким же именем. Это было очевидно, когда результат перезаписывался при обнаружении повторяющегося значения. Я попытался поиграть с defaultdict, но безуспешно.

Следующим моим мыслительным процессом было преобразовать его в список, а затем в словарь, используя список в качестве ключа, но я не совсем уверен, как это сделать. Любые указания или указатели были бы замечательными.

1 Ответ

1 голос
/ 07 мая 2020

Вы можете перебирать строки файла и использовать defaultdict , чтобы добавить значение к соответствующему ключу.

Пример:

from collections import defaultdict

res = defaultdict(list)

with open('file.txt') as f:
    for line in f:
        k, v = line.rstrip().split(',')
        res[k].append(int(v))

который приводит к

defaultdict(<class 'list'>, {'Apple': [5, 1], 'Orange': [6, 2], 'Pear': [10]})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...