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