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

  • Bogdan Gabriel

    Bogdan Gabri

    5 Aralık 2006
  • pain975

    pain975

    27 NİSAN 2008
  • TecnoTutosPC

    TecnoTutosPC

    19 Kasım 2012