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}
相关推荐
全栈练习生2 小时前
Jev 决策模型
python·ai·1024程序员节
LMT流氓兔2 小时前
第五单元——第十二课:把脚本整理成项目
java·数据库·python·langchain·1024程序员节
光依旧2 小时前
day-trader-skill实测:让Claude Code当交易助理,纯Python+确定性+fail-closed
python·量化交易·ai agent·a股·风控·claude code·开源项目实测
CCblandy3 小时前
前缀缓存命中率不靠引擎靠排列:本机仿真 3 轮,易变字段放开头 98.0%→0.0%
人工智能·python·算法·自然语言处理·性能优化
Sakura_j_h_3 小时前
给 FastAPI 接大模型:超时、重试和 token 成本该怎么管
python·大模型·fastapi·超时重试·token计费
forest_093 小时前
用Python复刻ClaudeDuet:主动式Agent四件套,定时晨报、后台巡检、危险动作审批(附完整可运行代码)
人工智能·python·架构·prompt·agi
小小张说故事4 小时前
Python 的函数调用到底贵在哪?拆开一次 call:51 纳秒栈帧与 *args 的 40 纳秒罚单
python
程序猿乐锅5 小时前
【从0-1学习Python | 第七篇】Python 面向对象基础
开发语言·笔记·后端·python·学习·1024程序员节
lzqrzpt5 小时前
太阳能控制器选型要点:电路工艺与工程适配技术解析
python·1024程序员节
databook5 小时前
时间序列数据中,如何找出缺失值
python·数据分析