我正在嘗試為鍵添加值串列。我使用以下幾行:
d = dict()
for i in range(5):
d['key'].append(i)
但我得到錯誤:KeyError:'key'
預期的輸出是:{'key':[0,1,2,3,4]}
如何解決此錯誤?
uj5u.com熱心網友回復:
您不能追加到不存在的串列。先初始化d['key']。
d = {'key': []}
for i in range(5):
d['key'].append(i)
uj5u.com熱心網友回復:
只是另一種未提及的方式,對于一個班輪:
d = {'key' : [i for i in range(5)]}
這在python中稱為理解:python理解
uj5u.com熱心網友回復:
您可以使用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]})
uj5u.com熱心網友回復:
Python 無法知道鍵的值key是一個串列。首先,您應該初始化密鑰,然后附加如下值:
d = dict()
d['key'] = []
for i in range(5):
d['key'].append(i)
print(d)
# {'key': [0, 1, 2, 3, 4]}
uj5u.com熱心網友回復:
給定一個可能包含的 dict '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
uj5u.com熱心網友回復:
首先,您要在這里完成什么?如果您想為該鍵創建一個串列值,您應該這樣做
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)
uj5u.com熱心網友回復:
d = {}
xkey =1
i=[]
for x in range(5):
i.append(x)
d[xkey] = i
print(d)
結果
{1: [0, 1, 2, 3, 4]}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/465794.html
