用 Python 将两个列表转换为字典
本教程将介绍如何在 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()
,利用列表的索引来迭代和初始化字典,将列表转换为字典。
与朴素的解决方案相比,这两个解决方案是更好的解决方案,朴素的解决方案使用普通循环将列表转换为字典。
相关文章
Pandas DataFrame DataFrame.shift() 函数
发布时间:2024/04/24 浏览次数:133 分类:Python
-
DataFrame.shift() 函数是将 DataFrame 的索引按指定的周期数进行移位。
Python pandas.pivot_table() 函数
发布时间:2024/04/24 浏览次数:82 分类:Python
-
Python Pandas pivot_table()函数通过对数据进行汇总,避免了数据的重复。
Pandas read_csv()函数
发布时间:2024/04/24 浏览次数:254 分类:Python
-
Pandas read_csv()函数将指定的逗号分隔值(csv)文件读取到 DataFrame 中。
Pandas 多列合并
发布时间:2024/04/24 浏览次数:628 分类:Python
-
本教程介绍了如何在 Pandas 中使用 DataFrame.merge()方法合并两个 DataFrames。
Pandas loc vs iloc
发布时间:2024/04/24 浏览次数:837 分类:Python
-
本教程介绍了如何使用 Python 中的 loc 和 iloc 从 Pandas DataFrame 中过滤数据。
在 Python 中将 Pandas 系列的日期时间转换为字符串
发布时间:2024/04/24 浏览次数:894 分类:Python
-
了解如何在 Python 中将 Pandas 系列日期时间转换为字符串