存在チェックはデフォルト値付きの辞書で消せる
らしい
ちょっと理解
defaultdict(ここに型を与える)
callableでctorを持つものなら何でもいい
primitiveで初期化したいならそのクラスを与える
数字ならintとか
thk nishio.icon
-.icon
1 てをうごかす
for文のネストを消したいとは思わないが、存在チェックのif文は標準ライブラリにあるデフォルト値付きの辞書を使えば消せるから消したくなるnishio.icon
code:py
from collections import defaultdict
filename_per_date = defaultdict(list)
for ...
...
for ....
filename = ...
filename_per_datedatestr.append(filename) 読んでもよくわからんな
code:py
from collections import defaultdict
def test(d):
d = {
'key_exists' : 100
}
dd = defaultdict(list)
test(dd)
https://gyazo.com/c925becaf5a947f3bc17bbd5a78224f8
https://gyazo.com/4b2bbc4669a5bbb4f563c9069b0b9a16
なるほど、わかったかも
defaultdictにlistを与えてるから、初期値が[]になってるのか
とすると、0にすれば元のコードも動くはず
https://gyazo.com/03226088d44a3b241399ac4d58d8eada
ほー
callable か none じゃないとダメらしい
なんでそいつらしか許さないんだろ
valueにprimitiveを取る辞書は想定していないのだろうかsta.icon
https://gyazo.com/e8332063398eeb54adc6c2de887294c9
わかったわかった、型を与えろってことね
そしたらその型のctorで初期化される
default_factory
この属性は __missing__() メソッドによって使われます。これは存在すればコンストラクタの第1引数によって初期化され、そうでなければ None になります。
それがこの説明ってわけねsta.icon*2