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ş:
Liste Üreteci Vs Python. Göster...
Python, bir Sözlük kullanmak, Liste ya...
Python - başlangıç kapasitesi ile bir ...
Gruplandırma ile bir liste üzerinde bi...
Python boş bir liste oluşturmak...