我有簡單的字典,鍵,值:更新Python字典(添加其他方面對現有密鑰)
d = {'word': 1, 'word1': 2}
我需要添加另一個值(以使從值的列表):
d = {'word': [1, 'something'], 'word1': [2, 'something1']}
我無法處理它。任何線索?
我有簡單的字典,鍵,值:更新Python字典(添加其他方面對現有密鑰)
d = {'word': 1, 'word1': 2}
我需要添加另一個值(以使從值的列表):
d = {'word': [1, 'something'], 'word1': [2, 'something1']}
我無法處理它。任何線索?
那麼你可以簡單地使用:
的1
需求
d['word'] = [1,'something']
或者如果要獲取:
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]
即使你只有一個值,它總是最容易使用的。它將是長度的列表1.
>>> d = {'a': [1], 'b': [2]}
>>> d
{'a': [1], 'b': [2]}
>>>
>>> d['a'].append(5)
>>> d
{'a': [1, 5], 'b': [2]}
注意原始字典使用標量,而不是列表。 –
你可以寫一個函數來爲你做這個:
>>> 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]}
此外,作爲@丹指出的那樣,你可以用一個列表來保存數據最初。如果A Python的方式做,這是你可以自定義一個defaultdict這將數據添加到直接列表:
>>> from collections import defaultdict
>>> d = defaultdict(list)
>>> d[1].append(2)
>>> d[2].append(2)
>>> d[2].append(3)
>>> d
defaultdict(<type 'list'>, {1: [2], 2: [2, 3]})
'defaultdict' FTW –
感謝您的幫助。我這樣做了(感謝Willem Van Onsem的建議):
x = (dict(Counter(tags))) #my dictionary
for i in x:
color = "#%06x" % random.randint(0, 0xFFFFFF)
x[i] = [x[i], color]
你不能處理它* how *?請顯示你的嘗試。您需要用列表對象替換當前值。 –
'd ['word'] = [d ['word'],'something']' – xzoert