当前位置:  开发笔记 > 编程语言 > 正文

更新python字典(为现有密钥添加另一个值)

如何解决《更新python字典(为现有密钥添加另一个值)》经验,为你挑选了3个好方法。

我有一个简单的字典与键,值:

d = {'word': 1, 'word1': 2}

我需要添加另一个值(从值中创建一个列表):

d = {'word': [1, 'something'], 'word1': [2, 'something1']}

我不能处理它.有线索吗?



1> Willem Van O..:

那么你可以简单地使用:

d['word'] = [1,'something']

或者在1需要获取的情况下:

d['word'] = [d['word'],'something']

最后说你想用新值更新一系列键,比如:

to_add = {'word': 'something', 'word1': 'something1'}

你可以使用:

for key,val in to_add.items():
    if key in d:
        d[key] = [d[key],val]



2> mu 無..:

您可以编写一个函数来为您执行此操作:

>>> d = {'word': 1, 'word1': 2}
>>> def set_key(dictionary, key, value):
...     if key not in dictionary:
...         dictionary[key] = value
...     elif type(dictionary[key]) == list:
...         dictionary[key].append(value)
...     else:
...         dictionary[key] = [dictionary[key], value]
... 
>>> set_key(d, 'word', 2)
>>> set_key(d, 'word', 3)
>>> d
{'word1': 2, 'word': [1, 2, 3]}

或者,正如@Dan指出的那样,您可以使用列表来保存数据.Pythonic方式如果这样做,您可以定义一个自定义defaultdict,它将数据直接添加到列表中:

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



3> Dan..:

如果您总是使用列表,即使您只有一个值,也会是最简单的.它只是一个长度为1的列表.

>>> d = {'a': [1], 'b': [2]}
>>> d
{'a': [1], 'b': [2]}
>>>
>>> d['a'].append(5)
>>> d
{'a': [1, 5], 'b': [2]}


请注意,原始字典使用标量,而不是列表.
推荐阅读
臭小子
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有