[英]How to add mutiple values to a key in a dictionary in python?
M = int(input())
mydict = {}
for i in range (M):
j,k = map(int, input().split())
try:
mydict[j].append(k)
except KeyError :
mydict[j] = k
print(mydict)
当我运行代码时:
Traceback (most recent call last):
File "source_file.py", line 7, in <module>
mydict[j].append(k)
AttributeError: 'int' object has no attribute 'append'
您遇到的问题是键的值被初始化为int (k)
而不是list ([k])
。 当您尝试在int
上调用.append
时,会得到AttributeError
。
用默认值初始化键的dict.setdefault
是使用dict.setdefault
或使用defaultdict
以便在添加新键时将您的值类型初始化为列表。
每次将键添加到dict
将defaultdict
与default_factory=list
自动创建一个新列表:
from collections import defaultdict
M = int(input())
mydict = defaultdict(list) # passing list as the default type
for i in range (M):
j,k = map(int, input().split())
mydict[j].append(k)
print(mydict)
另外,您可以使用dict.setdefault
:
M = int(input())
mydict = {}
for i in range (M):
j,k = map(int, input().split())
mydict.setdefault(j, []).append(k) # using setdefault to initialise as a list
print(mydict)
最后,如果您仍然喜欢使用except
块,请将原始的第8行更改为mydict[j] = [k]
编辑:错别字
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.