例如我有一本字典:
dictionary = {'dog' : 'bark', 'cat' : 'kitten'}
我想在密钥'woof'
中添加另一个值'dog'
,以便我得到:
{'dog': ['bark','woof'], 'cat' : 'kitten'}
然后在密钥'speak'
中添加另一个值'dog'
,以便获得:
{'dog': ['bark','woof', 'speak'], 'cat' : 'kitten'}
等。
感谢任何帮助。
答案 0 :(得分:3)
首先需要将与dict
中每个键相关联的值转换为列表:您可以通过词典理解来完成此操作。之后,只需将项目附加到字典中所需键的列表中即可。以下代码可以使用:
dictionary = {"dog" : "bark", "cat" : "kitten"}
dictionary = {key : [value] for key, value in dictionary.items()}
dictionary["dog"].append("woof")
dictionary["dog"].append("speak")
此时,如果您打印dictionary
,输出将为:
{'dog': ['bark', 'woof', 'speak'], 'cat': ['kitten']}
答案 1 :(得分:1)
据我所知,解决方案是从一开始就将每个字典值初始化为一个列表。例如,将字典初始化为dictionary = {'dog' : ['bark'], 'cat' : ['kitten']}
。然后,当您想要为字典键添加新值时,可以使用dictionary["dog"].append("speak")
。
答案 2 :(得分:0)
我会从集合模块中实现defaultdict。
以下是官方文档中的一个示例:
>>> s = [('yellow', 1), ('blue', 2), ('yellow', 3), ('blue', 4), ('red', 1)]
>>> d = defaultdict(list)
>>> for k, v in s:
... d[k].append(v)
...
>>> sorted(d.items())
[('blue', [2, 4]), ('red', [1]), ('yellow', [1, 3])]