b = dict(zip(a[::2], a[1::2]))
Büyükse a
, muhtemelen aşağıdaki gibi bir şey yapmak isteyeceksiniz, bu da yukarıdaki gibi geçici listeler yapmaz.
from itertools import izip
i = iter(a)
b = dict(izip(i, i))
Python 3 de dict anlama kullanabilirsiniz, ancak ironik bunun birlikte olacak yapmanın en kolay yolu düşünmek range()
ve len()
normalde bir kod koku olacağını.
b = {a[i]: a[i+1] for i in range(0, len(a), 2)}
Bu nedenle, iter()/izip()
yöntem hala Python 3'teki en Pythonic'tir, ancak bir yorumda EOL notları zip()
olduğu gibi Python 3'te zaten tembeldir, bu yüzden ihtiyacınız yoktur izip()
.
i = iter(a)
b = dict(zip(i, i))
Bir satırda istiyorsanız, hileli ve noktalı virgül kullanmanız gerekir. ;-)