Python如何将两个列表转化为一个字典

一、使用zip函数

zip函数是Python内置的一个强大工具,它可以将多个迭代器(如列表、元组等)"压缩"成一个迭代器,其中每个元素都是一个元组。使用zip函数将两个列表转换为字典是最常见的方法。

1、基本用法

python 复制代码
keys = ['a', 'b', 'c']
values = [1, 2, 3]
a = zip(keys, values)
print(type(a))
print(a)
print(next(a))
print(next(a))
dictionary = dict(zip(keys, values))

print(dictionary) 

结果:

python 复制代码
<class 'zip'>
<zip object at 0x10523cf40>
('a', 1)
('b', 2)
{'a': 1, 'b': 2, 'c': 3}

在这个例子中,zip(keys, values)生成一个迭代器,其中每个元素都是一个元组,dict函数接收这个迭代器并将其转换为字典。

2、处理不同长度的列表

当两个列表长度不同时,zip函数会根据较短的列表截断。

python 复制代码
keys = ['a', 'b', 'c', 'd']
values = [1, 2, 3]

dictionary = dict(zip(keys, values))

print(dictionary)  # 输出: {'a': 1, 'b': 2, 'c': 3}

如果需要处理长度不同的列表而不截断,可以使用itertools.zip_longest

python 复制代码
import itertools
keys = ['a', 'b', 'c', 'd']

values = [1, 2, 3]

dictionary = dict(itertools.zip_longest(keys, values, fillvalue=None))

print(dictionary)  
# 输出: {'a': 1, 'b': 2, 'c': 3, 'd': None}

二、字典推导式

字典推导式是一种简洁的创建字典的方法,类似于列表推导式。它可以用来将两个列表转换为字典。

python 复制代码
keys = ['a', 'b', 'c']
values = [1, 2, 3]

dictionary = {keys[i]: values[i] for i in range(len(keys))}

print(dictionary)  # 输出: {'a': 1, 'b': 2, 'c': 3}

三、使用for循环

python 复制代码
keys = ['a', 'b', 'c']
values = [1, 2, 3]

dictionary = {}

for i in range(len(keys)):
    dictionary[keys[i]] = values[i]
print(dictionary)  # 输出: {'a': 1, 'b': 2, 'c': 3}
相关推荐
Ashley_Amanda2 分钟前
Python 常见问题梳理
开发语言·windows·python
比奇堡的猪猪5 分钟前
修改默认conda环境(在win中)
python·conda
萧鼎16 分钟前
深入解析 Python 的 Word 模板引擎:docxtpl 全面指南
开发语言·python·word
Yeats_Liao23 分钟前
昇腾910B与DeepSeek:国产算力与开源模型的架构适配分析
人工智能·python·深度学习·神经网络·机器学习·架构·开源
智航GIS25 分钟前
11.3 Pandas 模块功能概览
python·信息可视化·pandas
浩子智控26 分钟前
开源RPA选择
python·c#·软件工程
kszlgy28 分钟前
Day48 随机函数与广播机制
python
子午32 分钟前
【2026原创】昆虫识别系统~Python+深度学习+卷积算法+模型训练+人工智能
人工智能·python·深度学习
nju_spy39 分钟前
动手学强化学习上交张伟楠(一)导论 + 多臂老虎机 MAB(ε-greedy+上置信界+汤普森采样)
人工智能·python·强化学习·actor-critic·多臂老虎机·汤普森采样·探索与利用
tjjucheng40 分钟前
专业做小程序定制开发的企业
python