collections.defaultdict
için kullanım örneğidir, burada varsayılan fabrika için int
satırını kullanabilirsiniz. Bir defaultdict
>>> from collections import defaultdict
>>> d = defaultdict(int)
>>> d
defaultdict(<class 'int'>, {})
>>> d['k'] +=1
>>> d
defaultdict(<class 'int'>, {'k': 1})
eksik anahtar arandığında öğeleri oluşturmak üzere yapılandırılmıştır. __getitem__
numaralı arama, bulunmayan bir anahtardan geçtiğinde, varsayılan bir değer üretmek için kullandığı bir satır (burada int()
) sağlar. Bu callable, default_factory
adlı örnek özniteliğinde saklanır. Bir default_factory
girmezseniz
, anahtarları eksik her zamanki gibi bir KeyError
alırsınız.
Sonra Sadece çok trivially
>>> d = defaultdict(lambda: 1)
Bu açıkça da olabilir, bu durumda, istediğiniz başlangıç değer sağlayan bir çağrılabilir geçmek zorunda belki 1 yerine 0. arasında, farklı bir varsayılan değer istedi herhalde herhangi bir normal adlandırılmış işlev.
Bu sizin durumda sadece belirli değerlerin sayısını saklamak için bir sözlük kullanmaya çalışan eğer bir collections.Counter
iş için daha uygun olduğunu ancak belirtmek gerekir.
>>> from collections import Counter
>>> Counter('kangaroo')
Counter({'a': 2, 'o': 2, 'n': 1, 'r': 1, 'k': 1, 'g': 1})
her zaman bir ifadede kullanarak
if
stamemt dağınıklığı kaldırabilir