SORU
1 Ocak 2011, CUMARTESİ


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
1 Ocak 2011, CUMARTESİ


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. ;-)

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • LearnKey

    LearnKey

    19 AĞUSTOS 2008
  • makemebad35

    makemebad35

    17 NİSAN 2006
  • picster

    picster

    20 NİSAN 2006