假設我想創建映射位數號碼小於100在這些數字結尾如下字典修改字典時:錯誤在python
d = {}
for i in range(100):
r = i % 10
if r in d:
d[r] = d[r].append(i)
else:
d[r] = [i]
print d
首先,當i爲20,d [ r]顯然是一個NoneType,當我嘗試附加到它時,拋出一個錯誤。爲什麼會這樣?其次,我覺得我的方法效率低下,因爲檢查d中的r是否沒有傳播。這樣的事情會更好,我覺得:
case(d[r]) of
SOME(L) => d[r] = L.append(i)
| NONE => d[r] = [i]
有沒有辦法在Python中有這種邏輯?
'd [r] = d [r] .append(i)'應該是'd [r] .append(i)'。 'list.append'修改列表,並且不返回新列表 –