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

  • MrDevin521

    MrDevin521

    18 Temmuz 2010
  • Numberphile

    Numberphile

    15 EYLÜL 2011
  • Watcher3223

    Watcher3223

    15 Kasım 2007