迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > Python >

用 Python 将两个列表转换为字典

作者:迹忆客 最近更新:2023/12/17 浏览次数:

本教程将介绍如何在 Python 中把两个列表转换为字典,其中一个列表包含字典的键,另一个包含值。


在 Python 中使用 zip()dict() 把两个列表转换为字典

Python 有一个内置函数 zip(),它将可迭代的数据类型聚合成一个元组并返回给调用者。函数 dict() 从给定集合中创建一个字典。

key_list = ["name", "age", "address"]
value_list = ["Johnny", "27", "New York"]

dict_from_list = dict(zip(key_list, value_list))
print(dict_from_list)

在这个解决方案中,只需使用一行和两个函数就可以将列表转换为字典。

输出:

{'name': 'Johnny', 'age': '27', 'address': 'New York'}

在 Python 中使用字典推导法将列表转换为字典

字典推导是一种缩短 Python 中创建字典的初始化时间的方法。理解是对 for 循环的一种替代,后者需要多行和变量。理解式在一行中就完成了初始化的工作。

在这个解决方案中,函数 zip() 仍然会向字典推导提供值。理解将把函数 zip() 的返回值内的每个连续元素的键值对作为字典返回。

key_list = ["name", "age", "address"]
value_list = ["Johnny", "27", "New York"]

dict_from_list = {k: v for k, v in zip(key_list, value_list)}
print(dict_from_list)

另一种将列表转换为字典的方法是利用列表的索引,使用 range() 函数对两个列表进行迭代,并使用 comprehension 从列表中建立一个字典。

它假设键列表和值列表的长度是相同的。在这个例子中,键列表的长度将是范围的基础。

key_list = ["name", "age", "address"]
value_list = ["Johnny", "27", "New York"]

dict_from_list = {key_list[i]: value_list[i] for i in range(len(key_list))}
print(dict_from_list)

这两种理解方案都会提供与前一个例子相同的输出。

这两个解决方案之间唯一的区别是,一个使用 zip() 函数将列表转换为元组。另一个使用 range() 函数使用当前索引迭代两个列表,形成一个字典。

输出:

{'name': 'Johnny', 'age': '27', 'address': 'New York'}

在 Python 中使用 for 循环将列表转换为字典

实现列表到字典转换的最直接的方法就是循环。虽然这种方法效率最低,也最冗长,但它是一个很好的开始,特别是当你是一个初学者,想领悟更多的基本编程语法的时候。

在循环之前,先初始化一个空字典。之后,继续进行转换,这将需要一个嵌套循环;外循环将迭代键列表,而内循环将迭代值列表。

key_list = ["name", "age", "address"]
value_list = ["Johnny", "27", "New York"]

dict_from_list = {}
for key in key_list:
    for value in value_list:
        dict_from_list[key] = value
        value_list.remove(value)
        break

print(dict_from_list)

每次形成键值对时,都会从列表中删除值元素,这样下一个键就会被分配下一个值。删除后,中断内循环,继续下一个键。

另一种使用循环的解决方案是使用 range() 来利用索引来获取键和值对,就像在字典推导的例子中所做的那样。

key_list = ["name", "age", "address"]
value_list = ["Johnny", "27", "New York"]

dict_from_list = {}
for i in range(len(key_list)):
    dict_from_list[key_list[i]] = value_list[i]

print(dict_from_list)

这两种解决方案都会产生相同的输出。

{"name": "Johnny", "age": "27", "address": "New York"}

总而言之,将两个列表转换为字典的最有效方法是使用内置函数 zip() 将两个列表转换为元组,然后使用 dict() 将元组转换为字典。

使用字典推导也可以使用 zip() 将列表转换为元组,或者使用 range(),利用列表的索引来迭代和初始化字典,将列表转换为字典。

与朴素的解决方案相比,这两个解决方案是更好的解决方案,朴素的解决方案使用普通循环将列表转换为字典。

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

如何在 Python 中查找列表中的最大值

发布时间:2023/12/18 浏览次数:192 分类:Python

它演示了如何在 Python 中寻找列表中的最大值。本教程将涵盖一些场景和数据类型,从简单的整数列表到更复杂的结构,如数组中的数组。

在 Python 中检查列表是否相等

发布时间:2023/12/18 浏览次数:85 分类:Python

本教程演示了如何在 Python 中检查两个列表是否相同或相等。在本教程中,我们将研究检查 Python 中两个列表是否相等的各种方法。

Python 中的字典数组或列表

发布时间:2023/12/18 浏览次数:125 分类:Python

本教程演示了如何在 Python 中创建字典数组。Python 中的字典以键值对的形式构成一组元素。列表可以在一个公共名称和特定索引下存储不同类型的元素。

检查索引是否存在于 Python 列表中

发布时间:2023/12/18 浏览次数:185 分类:Python

本教程演示了使用列表范围和 IndexError 异常检查 Python 列表中是否存在索引。我们将介绍两种使用列表范围和 IndexError 异常检查列表索引是否存在的方法。

在 Python 中对数字列表进行归一化

发布时间:2023/12/18 浏览次数:50 分类:Python

本教程演示如何归一化 python 中的数字列表。归一化意味着将给定的数据转换为另一个尺度。我们重新调整数据,使其介于两个值之间。

如何在 Python 中创建具有特定大小的列表

发布时间:2023/12/18 浏览次数:178 分类:Python

本教程介绍了如何在 Python 中创建具有特定大小的列表。当程序员提前知道元素数量时,为列表或数组预分配存储空间是程序员经常用地方式。

在 Python 中的列表中删除多个元素

发布时间:2023/12/18 浏览次数:188 分类:Python

我们可以使用 if...else 控制语句、列表推导式、列表切片和 for 循环从 Python 中的列表中删除多个元素。要从 Python 列表中删除多个值,我们可以删除列表的实际值或要从列表中删除的值的索引。

如何在 Python 中获取一个列表的平均值

发布时间:2023/12/18 浏览次数:142 分类:Python

本教程将演示如何在 Python 中使用 statistics.mean 获得一个给定列表的平均值。本教程介绍了如何在 Python 中计算一个列表的平均数。

在 Python 中将字典转换为列表

发布时间:2023/12/18 浏览次数:54 分类:Python

本文介绍如何在 Python 中将字典转换为列表。Python 中的字典是由键-值对组合而成。在 key 的帮助下,你可以访问字典里面的值。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便