Python字典Dict详解:创建、访问、遍历与List对比

Cora
Cora
发布时间:2026-10-13| 6人浏览过
原创

本文深入解析Python中的字典(Dict)数据类型,详细讲解其基于键值对的存储机制、Key的唯一性与不可变性要求。内容涵盖字典的多种创建方式、元素访问(含get方法的安全获取)、增删改操作以及多种遍历技巧,并对比了字典与列表在查找速度和内存占用上的差异,帮助开发者高效掌握Python数据处理核心技能。

Python字典(Dict)基础概述

本文详细介绍Python中的字典(Dict)数据类型,旨在为读者提供清晰的参考与学习指南。

字典(Dict)概述

1. 基本概念

字典是Python中另一种重要的存储结构,与列表(list)和元组(tuple)类似,但其核心特征在于采用键—值(key—value)对的形式进行数据存储。

字典的最大优势在于拥有极快的查找速度。

字典Key的核心特性

2. Key(键)的关键特性

① 字典中的Key必须保持唯一性。 ② **Key必须是不可变对象**

例如:字符串、整数等不可变类型均可作为Key使用。

列表(list)属于可变对象,因此不能用作字典的Key。

应用场景示例:存储学生成绩。

可以通过字典将学生的学号或姓名作为Key,成绩作为Value进行存储,从而实现快速查找。

字典的创建与转换

3. 字典的创建方法

基本语法如下:

字典名 = {键1:值1,键2:值2,…}


dist1 = {'tom':90,'lili':78, 'lele':92}
print(dist1)
print(dict(a=1,b=2,c=3))

示例输出结果如下:

{'tom': 90, 'lili': 78, 'lele': 92} {'a': 1, 'b': 2, 'c': 3}

3.1 将列表中的元组转换为字典:


list1= [('a',1),('b',2)]
print({a:b for a,b in list1})
>>>{'a': 1, 'b': 2}

字典的基本增删改查操作

4. 字典的基本操作

4.1 访问元素

访问语法:元素 = 字典名[key]


dist1 = {'tom':90,'lili':78, 'lele':92}
print(dist1['tom'])

示例输出:

90

注意:如果指定的Key不存在,程序会报错。

另一种语法:元素 = 字典名.get(key)

功能说明:使用get方法获取值,若Key存在则返回对应的Value;若Key不存在,则返回None。


dist1 = {'tom':90,'lili':78, 'lele':92}
value = dist1.get('tom')
print(value)

示例输出:

90

4.2 添加元素

语法:字典名[key] = value


dist1 = {'tom':90,'lili':78, 'lele':92}
dist1['lisi'] = 89
print(dist1)

示例输出:

{'tom': 90, 'lili': 78, 'lele': 92, 'lisi': 89}

注意:一个Key只能对应一个Value。如果多次对同一个Key赋值,后面的值会覆盖前面的值。

4.3 删除元素

语法:字典名.pop(key)


dist1 = {'tom':90,'lili':78, 'lele':92}
print(dist1.pop('tom'))
print(dist1)

示例输出:

90 {'lili': 78, 'lele': 92}

字典的遍历技巧

5. 字典的遍历方式

由于字典在内存中的存储是无序的,因此无法通过下标直接获取值。

5.1 使用for循环进行遍历

具体语法如下:

获取Key的方式:

for key in dict: print(key)

获取Value的方式:

for value in dict.values() : print(value)

同时获取Key和Value的方式:

for k, v in dist.items() : print(k, v)


dict1 = {'tom':90,'lili':78, 'lele':92}
#获取字典的key
for key in dict1:
 print(key)
#获取字典中的value 
for value in dict1.values():
 print(value)
#同时获取字典中的key与value
for k, v in dict1.items():
 print(k, v)

示例输出:

tom lili lele 90 78 92 tom 90 lili 78 lele 92


# 通过函数来遍历字典
dict1 = {'tom':90,'lili':78, 'lele':92}
for i,v in enumerate(dict1):
 print(i,v,dict1[v])

另一种遍历输出示例:

0 tom 90 1 lili 78 2 lele 92

5.2 字典键值对调:


d ={'d': 4, 'a': 1, 'b': 2, 'c': 3}
d = {v: k for k, v in d.items()}
print(d)

示例输出:

{4: 'd', 1: 'a', 2: 'b', 3: 'c'}

字典与列表的性能对比

6. 字典与列表的区别

1. 字典的查找和插入速度极快,且不会随着Key-Value数量的增加而变慢;而列表在查找时需要从头到尾逐个遍历元素,数据量增大时速度会显著变慢。

2. 字典需要占用大量内存,存在较多的内存浪费;而列表仅存储Key或Value部分,且数据紧密排列,内存效率相对较高。

更多关于Python相关内容感兴趣的读者可查看本站专题:《Python字典操作技巧汇总》、《Python列表(list)操作技巧总结》、《Python编码操作技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》及《Python入门与进阶经典教程》

希望本文所述内容能对大家的Python程序设计学习有所帮助。

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。