Python: Sözlüğe Listesi
Hadi uygun bir sözlük için harita olan Python listesi a
var diyelim. Her element bile sözlüğe anahtarını temsil eder, ve aşağıdaki garip eleman değerdir
örneğin,
a = ['hello','world','1','2']
ve bir sözlük dönüştürmek istiyorum b
nereye
b['hello'] = 'world'
b['1'] = '2'
Bunu gerçekleştirmek için sözdizimsel en temiz yolu nedir?
CEVAP
b = dict(zip(a[0::2], a[1::2]))
Eğer a
büyükse, muhtemelen yukarıdaki gibi herhangi bir geçici listeler yapmaz aşağıdaki gibi bir şey yapmak isteyeceksiniz.
from itertools import izip
i = iter(a)
b = dict(izip(i, i))
Python 3'te de dict bir anlama kullanabilirsin, ama ironik bir şekilde bunu yapmak için en kolay yolu range()
ve normalde bir kod koku olurdu len()
ile olacağını düşünüyorum.
b = {a[i]: a[i 1] for i in range(0, len(a), 2)}
Bu yüzden iter()/izip()
yöntem hala en Pythonic Python 3, Her ne kadar EOL notları bir yorum, zip()
zaten tembel Python 3 böylece ihtiyacınız yok izip()
.
i = iter(a)
b = dict(zip(i, i))
Eğer bir satırda istiyorsanız, noktalı virgül hile kullanmak zorundasın. ;-)
Bulma öğenin dizin listesi Python içer...
Nasıl sözlük değerlere göre sözlükler ...
Nasıl klon ya da Python içinde bir lis...
Nasıl Python ederken bir listesi düzen...
Nasıl python listesi tersine çevirebil...