次のように、数字をそれらの数字で終わる 100 未満の数字にマップする辞書を作成するとします。
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 であり、エラーがスローされます。これはなぜでしょうか?第二に、r in d をチェックする作業が伝播されないため、私のアプローチは非効率的であると感じています。このようなものが良いでしょう、私は感じます:
case(d[r]) of
SOME(L) => d[r] = L.append(i)
| NONE => d[r] = [i]
そのロジックをPythonで使用する方法はありますか?