繁体   English   中英

如何在python的字典中的键中添加多个值?

[英]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以便在添加新键时将您的值类型初始化为列表。

每次将键添加到dictdefaultdictdefault_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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM