当前位置: 首页 > ai >正文

Python字典(dict)详解:从创建到操作全掌握

前言

  • 字典是可变容器,可存储任意类型对象

  • 字典以键(key)-值(value)对的形式进行映射,键值对用冒号分割,对之间用逗号分割

  • d = {key1 : value1, key2 : value2, key3 : value3 }

  • 字典的数据是无序的

  • 字典的键只能用不可变类型,且不能重复

  • 字典的数据用键进行索引,不能用整数进行索引

 字典(dict)是Python中非常重要的一种数据结构,它以键值对的形式存储数据,具有极高的查找效率。本文将带大家全面了解字典的创建、操作及特性,适合Python初学者系统学习。

一、字典的创建

字典使用花括号{}创建,键值对之间用冒号:分隔:

# 创建空字典
empty_dict = {}# 创建有初始值的字典
student = {"name": "张三","age": 20,"major": "计算机科学"
}
dict = {'a': [1, 2, 3]}
dict = {'b': {"bb": 222}}
dict = {(1, 2, 3):'壹贰伍'}# 字典的键只能用不可变类型,且不能重复
# d = {'a': 1, 'b': 2, 'a': 3}  # 字典的键不能重复 d = {'a': 3, 'b': 2} 
# d = {[1, 2, 3]: 'a'}          # TypeError: unhashable type: 'list'# 使用dict()构造函数
d = dict()   # d = {}
d = dict([("name", "小王"), ("age", 35)])  # {'name': '小王', 'age': 35}
d = dict(a=1, b=2, c=3)    # {'a':1, 'b':2, 'c':3}
d = dict([1, 2, 3, 4])  # 错
teacher = dict(name="李老师", subject="数学")

注意

  • 字典是可变类型,但字典的键必须是不可变类型(如字符串、数字、元组)

  • 值可以是任意Python对象

二、字典的基本操作

2.1 增加或修改元素

# 添加新键值对
student["gender"] = "男"# 修改现有键的值
student["age"] = 21

 2.2 访问值

# 通过键访问
print(student["name"])  # 输出: 张三# 使用get()方法(避免KeyError)
print(student.get("height", "170cm"))  # 如果键不存在,会报错
mydic = {'Name': '小红', 'Age': 7, 'Class': 'First'} 
print (mydic['Alice']) # KeyError: 'Alice'

 2.3 成员检查(in/not in)

if "name" in student:print("姓名存在")if "height" not in student:print("身高信息不存在")

in用于判断一个键是否存在于字典中,存在返回True, 否则返回False(not in 类似)

  • 示例

d = dict(a=1, b=2)		# d = {'a': 1, 'b': 2}
print('a' in d)			# True	
print(1 in d)			# False
print('hello' not in d)	# True

 2.4 删除元素

# del语句删除
del student["major"]# pop()方法删除并返回值
age = student.pop("age")# 清空字典
student.clear()

三、字典的特性

  1. 无序性:Python3.7+中字典会保持插入顺序,但不应依赖顺序进行编程

  2. 键唯一性:每个键只能出现一次,后赋值的会覆盖前面的,假如前面的name是小红,后面又出现了name是小明,print(dict[name])是小明。

  3. 可变性:字典内容可以动态修改

  4. 高效查找:基于哈希表实现,查找时间复杂度为O(1)

四、常用字典API

方法描述
keys()返回所有键的视图
values()返回所有值的视图
items()返回所有键值对的视图
update()合并另一个字典
copy()返回字典的浅拷贝
setdefault()安全地设置默认值

 操作字典的方法:

序号函数及描述
1dict.clear()删除字典内所有元素
2dict.copy()返回一个字典的浅复制
4dict.get(key, default=None)返回指定键的值,如果键不在字典中返回 default 设置的默认值
5key in dict如果键在字典dict里返回true,否则返回false
6dict.items()以列表返回一个视图对象
7dict.keys()返回一个视图对象
9dict.update(dict2)把字典dict2的键/值对更新到dict里
10dict.values()返回一个视图对象
11pop(key,default)删除字典 key(键)所对应的值,返回被删除的值。

操作字典的函数:

序号函数描述
1len(dict)计算字典元素个数,即键的总数。
2str(dict)输出字典,可以打印的字符串表示。
3type(variable)返回输入的变量类型,如果变量是字典就返回字典类型。

使用示例

# 遍历字典
for key, value in student.items():print(f"{key}: {value}")# 合并字典
extra_info = {"hobby": "篮球", "height": "175cm"}
student.update(extra_info)

 官方文档:https://docs.python.org/zh-cn/3.13/library/stdtypes.html#mapping-types-dict

五、实际应用场景

  1. 数据存储:存储结构化数据,如配置信息、用户信息

  2. 快速查找:需要频繁根据键查找值的场景

  3. 数据统计:统计词频等需要计数的场景

  4. 函数参数:**kwargs接收可变数量的关键字参数

总结

字典是Python中最灵活、最常用的数据结构之一。掌握字典的使用可以大大提高编程效率。记住字典的核心特点是键值对快速查找,在实际应用中多思考如何利用这些特性解决问题。

练习建议

  1. 尝试用字典实现一个简单的电话簿

  2. 统计一篇文章中每个单词出现的次数

  3. 比较字典与列表在不同操作下的性能差异

希望本文能帮助你掌握Python字典的使用!如果有任何问题,欢迎在评论区留言讨论。

 

 

 

 

 

 

 

http://www.xdnf.cn/news/3247.html

相关文章:

  • Anaconda中配置Pyspark的Spark开发环境
  • 使用listPersonalCertificates 命令列示WebSphere Application Server特定密钥库中的个人证书
  • 【Android】四大组件之ContentProvider
  • 比较图检索增强生成(Graph RAG)和向量检索增强生成(Vector RAG)
  • L3-041 影响力
  • 如何在Cursor中使用MCP服务
  • Leetcode刷题记录24——最大子数组和
  • Java SE(6)——类和对象
  • 数据库 AI 助手测评:Chat2DB、SQLFlow 等工具如何提升开发效率?
  • 手搓传染病模型(SEIAR)
  • python3GUI--视频监控管理平台 By:PyQt5(详细讲解)
  • 多商户商城系统开发全策略:从技术架构到流量增长
  • python如何word转pdf
  • Node.js心得笔记
  • 前端八股 6
  • Redis ⑧-RESP | 渐进式遍历 | 数据库管理
  • 移动光猫 UNG853H 获取超级管理员账号密码
  • 2025东三省C题深圳杯C题数学建模挑战赛数模思路代码文章教学: 分布式能源接入配电网的风险分析
  • 支持selenium的chrome driver更新到136.0.7103.49
  • 2025年一加7pro刷twpr / magisk / kali nethunter教程+资源下载+避坑指南
  • ZYNQ 纯PL端逻辑资源程序固化流程
  • AM剪辑软件汉化版:简单易用,开启视频创作之旅
  • 5G技术如何提升智能家居体验:让家更聪明,生活更智能
  • Kubernetes(k8s)的API Server 组件原理与结合生产实战教程
  • 上位机知识篇---ARM 汇编语言与寄存器深度讨论
  • 【工具】Windows批量文件复制教程:用BAT脚本自动化文件管理
  • UDP数据包和TCP数据包的区别;网络编程套接字;不同协议的回显服务器
  • Android短信监控技术实现:合法合规的远程采集方案
  • 计网_PPP协议
  • CMake中的“包管理“模块FetchContent