b = dict(zip(a[::2], a[1::2]))
如果a
很大,则可能需要执行以下操作,而不会像上面那样创建任何临时列表。
from itertools import izip
i = iter(a)
b = dict(izip(i, i))
在Python 3中,您也可以使用dict
理解,但具有讽刺意味的是,我认为最简单的方法是使用range()and len()
,通常是代码味道。
b = {a[i]: a[i+1] for i in range(0, len(a), 2)}
因此iter()/izip()
,尽管EOL在注释中指出,该方法仍可能是Python 3中使用最多的Python语言,但在Python 3 zip()中已经很懒了,因此您不需要izip()
。
i = iter(a)
b = dict(zip(i, i))
如果只想一行,就必须作弊并使用分号。