আমি মনে করি না যে defaultdict
এখানে আপনার মোটেই প্রয়োজন । কেন শুধু dict.setdefault
পদ্ধতি ব্যবহার করবেন না ?
>>> d = {}
>>> d.setdefault('p', C('p')).v
'p'
এটি অবশ্যই অনেক উদাহরণ তৈরি করবে C
। যদি এটি কোনও সমস্যা হয় তবে আমি মনে করি যে সহজ পদ্ধতির কাজটি করবে:
>>> d = {}
>>> if 'e' not in d: d['e'] = C('e')
defaultdict
যতদূর আমি দেখতে পাচ্ছি এটি অন্য যে কোনও বিকল্পের চেয়ে দ্রুত হবে ।
in
পরীক্ষার গতি সম্পর্কিত ইটিএ বনাম চেষ্টা করে বাদ দিয়ে চেষ্টা করুন:
>>> def g():
d = {}
if 'a' in d:
return d['a']
>>> timeit.timeit(g)
0.19638929363557622
>>> def f():
d = {}
try:
return d['a']
except KeyError:
return
>>> timeit.timeit(f)
0.6167065411074759
>>> def k():
d = {'a': 2}
if 'a' in d:
return d['a']
>>> timeit.timeit(k)
0.30074866358404506
>>> def p():
d = {'a': 2}
try:
return d['a']
except KeyError:
return
>>> timeit.timeit(p)
0.28588609450770264