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

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

Patricia Arquette
发布: 2024-12-08 13:38:10
原创
1043 人浏览过

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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板