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

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字典的使用!如果有任何问题,欢迎在评论区留言讨论。

 

 

 

 

 

 

 

相关文章:

  • 产品设计三板斧与抓住事物本质的关键意义
  • 前端面试每日三题 - Day 21
  • 三元运算符与扩展运算符
  • 正则表达式:精准匹配,高效处理文本
  • (C题|社交媒体平台用户分析问题)2025年第二十二届五一数学建模竞赛(五一杯/五一赛)解题思路|完整代码论文集合
  • jupyterlab建议安装的两个插件
  • 《软件设计师》复习笔记(11.1)——生命周期、CMM、开发模型
  • react学习笔记3——基于React脚手架
  • 数字智慧方案6166丨智慧医养结合大数据平台方案(50页PPT)(文末有下载方式)
  • yum源配置文件CentOS-Base.repo完整内容
  • Python数据分析课程实验-1
  • pycharm安装的插件怎么显示在右侧
  • 深入解析三大查找算法:线性查找、二分查找与哈希查找的原理与应用
  • windows安装conda
  • 数值求解Eikonal方程的方法及开源实现
  • GitHub 趋势日报 (2025年04月30日)
  • 2025年一加7pro刷twpr / magisk / kali nethunter教程+资源下载+避坑指南
  • Linux安装部署Postgresql数据库
  • LiteOS与SLE透传实战案例
  • 【基础算法】插值查找算法 - JAVA
  • 香港发生车祸致22人受伤,4人伤势严重
  • 十四届全国人大常委会举行第四十四次委员长会议
  • 海量数据处于“原矿”状态,数据价值释放如何破局?
  • 从 “沪惠保” 到 “沪骑保”看普惠保险的 “上海样式”
  • 因高颜值走红的女通缉犯出狱后当主播自称“改邪归正”,账号已被封
  • 六朝文物草连空——丹阳句容南朝石刻考察纪