向同一个键添加更多值

时间:2014-06-10 18:42:12

标签: python python-2.7 dictionary key-value

我想知道是否有可以执行此操作的命令:

>>>A=dict()
>>>A[1]=3
>>>A
   {1:3}
>>>A[1].add(5)        #This is the command that I don't know if exists.
>>>A
   {1:(3,5)}

我的意思是,在不退出旧值的情况下,为同一个键添加另一个值。 有可能这样做吗?

4 个答案:

答案 0 :(得分:5)

您可以将字典值设为lists

>>> A = dict()
>>> A[1] = [3]
>>> A
{1: [3]}
>>> A[1].append(5)  # Add a new item to the list
>>> A
{1: [3, 5]}
>>>

您可能也对dict.setdefault感兴趣,其功能类似于collections.defaultdict,但无需导入:

>>> A = dict()
>>> A.setdefault(1, []).append(3)
>>> A
{1: [3]}
>>> A.setdefault(1, []).append(5)
>>> A
{1: [3, 5]}
>>>

答案 1 :(得分:2)

类型list的{​​{3}}将创建一个空列表,以防您访问到目前为止字典中不存在的密钥。这通常会导致相当优雅的代码。

>>> from collections import defaultdict
>>> d = defaultdict(list)
>>> d[1].append(3)
>>> d[1].append(2)
>>> d
defaultdict(<type 'list'>, {1: [3, 2]})

答案 2 :(得分:1)

使用defaultdict消除了&#34;特殊情况&#34;初始插入。

from collections import defaultdict

A = defaultdict(list)

for num in (3,5):
    A[1].append(num)

答案 3 :(得分:0)

与其他人指出的一样,将值存储在列表中,但请记住检查密钥是否在字典中以确定是否需要为该密钥追加或创建新列表...

A = dict()
if key in A: A[key].append(value)
else: A[key] = [value]