首页 >后端开发 >Python教程 >如何有效地将交替键和值的 Python 列表转换为字典?

如何有效地将交替键和值的 Python 列表转换为字典?

Patricia Arquette
Patricia Arquette原创
2024-12-08 13:38:101049浏览

How Can I Efficiently Convert a Python List of Alternating Keys and Values into a Dictionary?

在 Python 中将 [key1,val1,key2,val2] 列表转换为字典

在 Python 中,经常会遇到其中每个列表元素对映射到字典中的键值对。要将此类列表转换为字典,语法上最优雅的方法是结合使用内置的 zip() 函数和字典构造。

例如,给定一个具有交替键和值的列表 a:

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

我们可以有效地创建一个字典 b,其中 a 中的每个键映射到其对应的值,如下所示如下:

b = dict(zip(a[::2], a[1::2]))

这里,a[::2] 提取偶数元素,表示键,a[1::2] 提取奇数元素,表示值。然后 dict() 构造函数将这些列表组合成字典。

对于较大的列表,节省内存的替代方案是利用 itertools.izip() 函数,该函数成对迭代地使用 a 中的元素:

from itertools import izip
i = iter(a)
b = dict(izip(i, i))

在 Python 3 中,使用 dict 理解和range():

b = {a[i]: a[i+1] for i in range(0, len(a), 2)}

或者,可以直接使用 zip() 函数,因为它在 Python 3 中是惰性的:

i = iter(a)
b = dict(zip(i, i))

为了简洁起见,“海象” Python 3.8 及更高版本中可以使用运算符 (:=) 在单行中执行赋值操作:

b = dict(zip(i := iter(a), i))

以上是如何有效地将交替键和值的 Python 列表转换为字典?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn