【发布时间】:2011-11-26 20:04:11
【问题描述】:
我的代码示例:
dictionary={ 'key1' : 'value1' , 'key2' : 'value2' , 'key1' : 'value3' }
x=dictionary['key1']
print(x)
这仅打印 value3。我希望它同时打印 value3 和 value1,因为它们 两者都与key1相关。我该怎么做?
【问题讨论】:
标签: dictionary python-3.x
我的代码示例:
dictionary={ 'key1' : 'value1' , 'key2' : 'value2' , 'key1' : 'value3' }
x=dictionary['key1']
print(x)
这仅打印 value3。我希望它同时打印 value3 和 value1,因为它们 两者都与key1相关。我该怎么做?
【问题讨论】:
标签: dictionary python-3.x
你不能。键按您指定的顺序添加到字典中,第二次出现的“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']
【讨论】: