假设我有一个python中的a列表,它的条目可以方便地映射到字典中。每个偶数元素表示字典的键,下面的奇数元素是值
例如,
a = ['hello','world','1','2']
我想把它转换成一本字典b,在那里
b['hello'] = 'world'
b['1'] = '2'
号
实现这一点的语法上最干净的方法是什么?
使用python从列表中生成字典的可能副本
b = dict(zip(a[::2], a[1::2]))
如果a是大的,那么您可能需要做如下的事情,而这并没有像上面那样列出任何临时列表。
from itertools import izip
i = iter(a)
b = dict(izip(i, i))
号
在python 3中,您也可以使用听写理解,但具有讽刺意味的是,我认为最简单的方法是使用range()和len(),这通常是一种代码味道。
b = {a[i]: a[i+1] for i in range(0, len(a), 2)}
因此,iter()/izip()方法可能仍然是python 3中最为常见的方法,尽管正如eol在评论中指出的那样,zip()在python3中已经很懒惰了,所以您不需要izip()。
i = iter(a)
b = dict(zip(i, i))
。
如果你