Как найти несколько одинаковых ключей в словаре? (Python3) - PullRequest
0 голосов
/ 27 ноября 2011

Пример моего кода:

dictionary={ 'key1' : 'value1' , 'key2' : 'value2' , 'key1' : 'value3' }

x=dictionary['key1']

print(x)

Это печатает ТОЛЬКО значение3.Я хочу, чтобы он печатал как value3, так и value1, так как они оба соотносятся с key1.Как я могу это сделать?

1 Ответ

2 голосов
/ 27 ноября 2011

Вы не можете. Ключи добавляются в словарь в указанном вами порядке, и второе вхождение 'key1' заменяет предыдущее.

Это так же, как если бы вы написали:

x = 1
x = 2

, а затем спросил, как можно вывести оба значения x.

Для записи нескольких значений проще всего использовать defaultdict и создавать списки значений:

>>> import collections
>>> dictionary = collections.defaultdict(list)
>>> dictionary['key1'].append('value1')
>>> dictionary['key2'].append('value2')
>>> dictionary['key1'].append('value3')
>>> print(dictionary['key1'])
['value1', 'value3']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...