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

时间:2018-12-12 12:08:38

标签: python python-3.x dictionary

System.getProperty("java.runtime.version")

当我运行代码时:

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)

1 个答案:

答案 0 :(得分:3)

您遇到的问题是密钥的值初始化为int (k)而不是list ([k])。当您尝试在.append上呼叫int时,会得到AttributeError

使用默认值初始化键的Python方法是使用dict.setdefault或使用defaultdict,以便在添加新键时将值类型初始化为列表。

每次将密钥添加到defaultdict时,将default_factory=listdict一起使用会自动创建一个新列表:

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]

编辑:错字