14 AĞUSTOS 2010, CUMARTESİ
'setdefault' dict yöntemi durumlarda kullanın
Python 2.5 collections.defaultdict
ayrıca büyük ölçüde dict
's setdefault
yöntem. ihtiyacı azalmış Bu soru kolektif eğitim için:
setdefault
hala yararlı, bugün Python 2.6/2.7 nedir?setdefault
popüler kullanım örneklericollections.defaultdict
ile değiştirilen neydi?
CEVAP
14 AĞUSTOS 2010, CUMARTESİ
defaultdict
ayarları varsayılan için yararlı olduğunu söyleyebilirizbu dict doldurmadan önceve setdefault
varsayılan ayar için yararlıdırya da dict doldurduktan sonra.
Muhtemelen en yaygın kullanım örneği: Gruplama öğeleri (sıralanmamış veri, itertools.groupby
başka kullanın)
# really verbose
new = {}
for (key, value) in data:
if key in new:
new[key].append( value )
else:
new[key] = [value]
# easy with setdefault
new = {}
for (key, value) in data:
group = new.setdefault(key, []) # key might exist already
group.append( value )
# even simpler with defaultdict
new = defaultdict(list)
for (key, value) in data:
new[key].append( value ) # all keys have a default already
Bazen belirli tuşları olmadığından emin olmak için bir dict oluşturduktan sonra istediğiniz. defaultdict
sadece açık erişim anahtarları oluşturur, çünkü bu durumda işe yaramaz. HTTP gibi birçok başlıkları ile bazı isteğe bağlı bir şey olarak biliyor, ama onlar için varsayılanları.
headers = parse_headers( msg ) # parse the message, get a dict
# now add all the optional headers
for headername, defaultvalue in optional_headers:
headers.setdefault( headername, defaultvalue )
Bunu Paylaş:
Nasıl Yansıma Aşırı bir Yöntemi Çağırm...
İş Akışı Altyapısı durumlarda kullanın...
NoSQL durumlarda kullanın...
Scala durumlarda kullanın.eşzamanlı.Sö...
Gerçek dünya bit operatörleri durumlar...