将值添加到字典键作为列表循环
add value to dictionary key as list loop for
我正在尝试为键添加一个值列表。
我使用以下几行:
d = dict()
for i in range(5):
d['key'].append(i)
但我收到错误:KeyError: 'key'
预期输出为:{'key':[0,1,2,3,4]}
如何解决这个错误?
您可以使用 defaultdict
为缺少的键自动创建一个对象,在本例中是一个空列表。
from collections import defaultdict
d = defaultdict(list)
for i in range(5):
d['key'].append(i)
print(d)
# defaultdict(<class 'list'>, {'key': [0, 1, 2, 3, 4]})
Python 无法知道键 key
的值是一个列表。首先,您应该初始化密钥,然后附加以下值:
d = dict()
d['key'] = []
for i in range(5):
d['key'].append(i)
print(d)
# {'key': [0, 1, 2, 3, 4]}
您不能附加到不存在的列表。先初始化d['key']
。
d = {'key': []}
for i in range(5):
d['key'].append(i)
给定 可能 包含 'key'
的字典,我会用 try/except 覆盖 KeyError
来写这个,如果它开始列表不存在
for i in range(5):
try:
d['key'].append(i)
except KeyError: # key not in d (yet)
d['key'] = [i] # start a new list
首先你想在这里完成什么?如果你想为那个键创建一个列表值,你应该像
d['key'] = [0, 1, 2, 3, 4]
无论如何,您的代码中的问题是您试图在不存在的列表中附加一个值。您的问题的解决方案可能是
d = dict()
for i in range(5):
if 'key' not in d.keys():
d['key'] = []
else:
d['key'].append(i)
另一种未提及的方式,用于单衬垫:
d = {'key' : [i for i in range(5)]}
这在python中叫做理解:python comprehension
d = {}
xkey =1
i=[]
for x in range(5):
i.append(x)
d[xkey] = i
print(d)
结果
{1: [0, 1, 2, 3, 4]}
我正在尝试为键添加一个值列表。 我使用以下几行:
d = dict()
for i in range(5):
d['key'].append(i)
但我收到错误:KeyError: 'key'
预期输出为:{'key':[0,1,2,3,4]}
如何解决这个错误?
您可以使用 defaultdict
为缺少的键自动创建一个对象,在本例中是一个空列表。
from collections import defaultdict
d = defaultdict(list)
for i in range(5):
d['key'].append(i)
print(d)
# defaultdict(<class 'list'>, {'key': [0, 1, 2, 3, 4]})
Python 无法知道键 key
的值是一个列表。首先,您应该初始化密钥,然后附加以下值:
d = dict()
d['key'] = []
for i in range(5):
d['key'].append(i)
print(d)
# {'key': [0, 1, 2, 3, 4]}
您不能附加到不存在的列表。先初始化d['key']
。
d = {'key': []}
for i in range(5):
d['key'].append(i)
给定 可能 包含 'key'
的字典,我会用 try/except 覆盖 KeyError
来写这个,如果它开始列表不存在
for i in range(5):
try:
d['key'].append(i)
except KeyError: # key not in d (yet)
d['key'] = [i] # start a new list
首先你想在这里完成什么?如果你想为那个键创建一个列表值,你应该像
d['key'] = [0, 1, 2, 3, 4]
无论如何,您的代码中的问题是您试图在不存在的列表中附加一个值。您的问题的解决方案可能是
d = dict()
for i in range(5):
if 'key' not in d.keys():
d['key'] = []
else:
d['key'].append(i)
另一种未提及的方式,用于单衬垫:
d = {'key' : [i for i in range(5)]}
这在python中叫做理解:python comprehension
d = {}
xkey =1
i=[]
for x in range(5):
i.append(x)
d[xkey] = i
print(d)
结果
{1: [0, 1, 2, 3, 4]}