我有一个简单的字典与键,值:
d = {'word': 1, 'word1': 2}
我需要添加另一个值(从值中创建一个列表):
d = {'word': [1, 'something'], 'word1': [2, 'something1']}
我不能处理它.有线索吗?
那么你可以简单地使用:
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]
您可以编写一个函数来为您执行此操作:
>>> 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]})
如果您总是使用列表,即使您只有一个值,也会是最简单的.它只是一个长度为1的列表.
>>> d = {'a': [1], 'b': [2]} >>> d {'a': [1], 'b': [2]} >>> >>> d['a'].append(5) >>> d {'a': [1, 5], 'b': [2]}