SORU
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:

  1. setdefault hala yararlı, bugün Python 2.6/2.7 nedir?
  2. setdefault popüler kullanım örnekleri collections.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ş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • BruBearBaby

    BruBearBaby

    25 Ocak 2011
  • michal lelkowski

    michal lelko

    9 Temmuz 2006
  • NikkoNantone

    NikkoNantone

    21 Kasım 2011