私は最近、デフォルトの辞書を見つけて使用し始め、いくつかのよりかさばる構造を置き換えました。「python の禅」で、python の重要なポイントの 1 つは「それを行うための明白な方法が 1 つ、できれば 1 つだけであるべきである」ということを読みました。
その基準に基づいて (または、より実際にはメモリ使用量または速度に基づいて)、次のどれ (またはまったく異なるもの) が最適でしょうか? 最初の方が正しいと思いますが、他の方のご意見をお聞かせください。
my_dict = defaultdict(int)
for generic in iterable:
my_dict[generic] +=1
また:
my_dict = {}
for generic in iterable:
if generic not in my_dict:
my_dict[generic] = 1
else:
my_dict[generic]+=1
また:
my_dict = {}
for generic in iterable:
try:
my_dict[generic] += 1
except(KeyError):
my_dict[generic] = 1
my_dict = defaultdict(list) の使用と追加関数の使用についても同じことが言えます。複数の for ループまたはその他の条件が使用されていると仮定すると、単純に単一の iterable から一般的な値をカウントするのではなく、明らかに異なる機能を持つことになります。