SORU
17 Kasım 2009, Salı


Python: liste üreteci ile bir sözlük oluşturmak

Python listeyi anlama sözdizimi seviyorum.

Sözlükler de oluşturmak için kullanılabilir mi? Anahtarları ve değerleri çiftleri üzerinden yineleme tarafından örneğin,:

mydict = {(k,v) for (k,v) in blah blah blah}  # doesn't work :(

CEVAP
17 Kasım 2009, Salı


2.6 ve daha önce Python dict kurucu anahtar/değer çiftleri bir iterable alabilirsiniz

d = dict((key, value) for (key, value) in iterable)

Python 2.7 ve 3 itibaren, sadece dict comprehension syntax doğrudan kullanabilirsiniz:

d = {key: value for (key, value) in iterable}

Elbette kullanabilirsiniz iterable herhangi bir şekilde (yeşil listeler hazır, jeneratör kapsam, liste üreteçleri, üreteç fonksiyonları, fonksiyonel kompozisyon... yaratıcı sürece her öğe bir iterable kendisinin iki elemanı vardır:

d = {value: foo(value) for value in sequence if bar(value)}

def key_value_gen(k):
   yield chr(k 65)
   yield chr((k 13)& 65)
d = dict(map(key_value_gen, range(26)))

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Richard Laxa

    Richard Laxa

    30 AĞUSTOS 2012
  • superemposed

    superemposed

    25 Aralık 2007
  • Chaîne de TheMoustic

    Chaîne de T

    5 Kasım 2006