對於字典中的一個鍵,您只能存儲一個值。
您可以選擇將該值作爲列表。
{'b': ['4'], 'c': ['3', '5']}
下面的代碼會爲你做的:
new_dict = {}
for (key, value) in my_list:
if key in new_dict:
new_dict[key].append(value)
else:
new_dict[key] = [value]
print(new_dict)
# output: {'b': ['4'], 'c': ['3', '5']}
同樣的事情可以用setdefault
完成。由於@Aadit中號沙阿指出來
new_dict = {}
for (key, value) in my_list:
new_dict.setdefault(key, []).append(value)
print(new_dict)
# output: {'b': ['4'], 'c': ['3', '5']}
同樣的事情可以用defaultdict
完成。感謝@MMF指出。
from collections import defaultdict
new_dict = defaultdict(list)
for (key, value) in my_list:
new_dict[key].append(value)
print(new_dict)
# output: defaultdict(<class 'list'>, {'b': ['4'], 'c': ['3', '5']})
你也可以選擇將值存儲爲字典列表:
[{'b': '4'}, {'c': '3'}, {'c': '5'}]
下面的代碼會爲你做
new_list = [{key: value} for (key, value) in my_list]
你會希望得到什麼'my_dict ['c']'? –
for my_list中的(key,value)不應該工作 – MMF
@MMF:爲什麼不呢?迭代時,'my_list'中的每個元素都有兩個值。 – DSM