在Python中将列表转换为字典

假设我a在Python中有一个列表,其条目方便地映射到字典。每个偶数元素代表字典的键,后面的奇数元素是值

例如,

a = ['hello','world','1','2']

我想将其转换为字典b,

b['hello'] = 'world'

b['1'] = '2'

语法上最干净的方法是什么?

回答:

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

如果只想一行,就必须作弊并使用分号。

以上是 在Python中将列表转换为字典 的全部内容, 来源链接: utcz.com/qa/406658.html

回到顶部