如何避免覆盖字典追加?

Loo*_*ast 0 python dictionary overwrite

例如,我有:

dic={'a': 1, 'b': 2, 'c': 3}
Run Code Online (Sandbox Code Playgroud)

现在我想要另一个'c':4添加到字典中。它将覆盖现有的'c':3.

我怎么会dic这样:

dic={'a': 1, 'b': 2, 'c': 3, 'c':4}
Run Code Online (Sandbox Code Playgroud)

Rol*_*ith 5

字典键必须是唯一的。但是您可以将列表作为值,以便在其中存储多个值。这可以通过使用collections.defaultdict如下所示来完成。(从 IPython 会话复制的示例。)

In [1]: from collections import defaultdict

In [2]: d = defaultdict(list)

In [3]: d['a'].append(1)

In [4]: d['b'].append(2)

In [5]: d['c'].append(3)

In [6]: d['c'].append(4)

In [7]: d
Out[7]: defaultdict(list, {'a': [1], 'b': [2], 'c': [3, 4]})
Run Code Online (Sandbox Code Playgroud)