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

Python学习-day9 字典Dictionary

字典(Dictionary)是Python中唯一内置的映射类型(Mapping Type),通过键-值对(Key-Value)存储数据,以花括号{} 表示。它的核心特性是通过键快速访问值(平均时间复杂度接近O(1)),适用于需要高效查找、插入和删除的场景。
字典的键key是不可变的,但是值value是可变的。

创建字典

创建空字典

dict_emtpy = {}
print(f"dict_emtpy = {dict_emtpy}")

dict_emtpy = {}

创建非空字典

# 直接创建
dict_data = {"name":"Python", "age":36}
print(f"dict_data = {dict_data}")

dict_data = {‘name’: ‘Python’, ‘age’: 36}

# 使用 dict() 构造函数
dict_data = dict(name="Python", age=36) 
dict_data2 = dict({"name":"Python", "age":36})print(f"dict_data = {dict_data}\ndict_data2 = {dict_data2}")

dict_data = {‘name’: ‘Python’, ‘age’: 36}
dict_data2 = {‘name’: ‘Python’, ‘age’: 36}

访问字典元素

使用 [键key] 的方法,直接访问指定元素。

dict_data = dict(name="Python", age=36) 
result = dict_data["name"]
print(f"dict_data = {dict_data}\ndict_data[\"name\"] = {result}")
dict_data = {'name': 'Python', 'age': 36}
dict_data["name"] = Python

当 键key 不存在时,程序报错。

dict_data = dict(name="Python", age=36) 
result = dict_data["nameage"]
print(f"dict_data = {dict_data}\ndict_data[\"nameage\"] = {result}")

Traceback (most recent call last):
File “.code.tio”, line 2, in
result = dict_data[“nameage”]
KeyError: ‘nameage’

使用 get() 方法,安全访问指定元素,当键不存在时返回None或指定默认值。

dict_data = dict(name="Python", age=36) 
result = dict_data.get("name",None)
print(f"dict_data = {dict_data}\ndict_data[\"name\"] = {result}")

dict_data = {‘name’: ‘Python’, ‘age’: 36}
dict_data[“name”] = Python

不存在时,返回默认值。

dict_data = dict(name="Python", age=36) 
result = dict_data.get("nameage",None)
print(f"dict_data = {dict_data}\ndict_data[\"nameage\"] = {result}")

dict_data = {‘name’: ‘Python’, ‘age’: 36}
dict_data[“nameage”] = None

修改字典元素

单个更新,使用 [键key] 直接赋值更新现有值,当 键key 存在时。

dict_data = dict(name="Python", age=36) 
print(f"修改前:dict_data = {dict_data}")
dict_data["name"] = "Python 3.0"
print(f"修改后:dict_data = {dict_data}")

修改前:dict_data = {‘name’: ‘Python’, ‘age’: 36}
修改后:dict_data = {‘name’: ‘Python 3.0’, ‘age’: 36}

批量更新,使用 update() 方法合并其他字典或键值对序列。

dict_data = dict(name="Python", age=36) 
print(f"修改前:dict_data = {dict_data}")
dict_data.update(birthday=1989,name="Python3.0",age=10)
print(f"修改后:dict_data = {dict_data}")

修改前:dict_data = {‘name’: ‘Python’, ‘age’: 36}
修改后:dict_data = {‘name’: ‘Python3.0’, ‘age’: 10, ‘birthday’: 1989}

添加字典元素

使用 [键key] 直接添加新元素,当 键key 不存在时。

dict_data = dict(name="Python", age=36) 
print(f"修改前:dict_data = {dict_data}")
dict_data["birthday"] = "1989"
print(f"修改后:dict_data = {dict_data}")

修改前:dict_data = {‘name’: ‘Python’, ‘age’: 36}
修改后:dict_data = {‘name’: ‘Python’, ‘age’: 36, ‘birthday’: ‘1989’}

删除字典元素

使用 del 方法,删除指定 [键key] 的元素。

dict_data = dict(name="Python", age=36) 
print(f"删除前:dict_data = {dict_data}")del dict_data["age"] # 删除指定元素
print(f"删除后:dict_data = {dict_data}")

删除前:dict_data = {‘name’: ‘Python’, ‘age’: 36}
删除后:dict_data = {‘name’: ‘Python’}

使用 pop(键key) 方法,删除指定元素,并返回值。

dict_data = dict(name="Python", age=36) 
print(f"删除前:dict_data = {dict_data}")result = dict_data.pop("age") # 删除指定元素,并返回值
print(f"删除后:dict_data = {dict_data}, result = {result}")

删除前:dict_data = {‘name’: ‘Python’, ‘age’: 36}
删除后:dict_data = {‘name’: ‘Python’}, result = 36

使用 clear() 方法,删除所有元素。

dict_data = dict(name="Python", age=36) 
print(f"删除前:dict_data = {dict_data}")dict_data.clear() # 删除所有元素
print(f"删除后:dict_data = {dict_data}")

删除前:dict_data = {‘name’: ‘Python’, ‘age’: 36}
删除后:dict_data = {}

使用 del 方法,删除字典。

dict_data = dict(name="Python", age=36) 
print(f"删除前:dict_data = {dict_data}")del dict_data # 删除字典
print(f"删除后:dict_data = {dict_data}")

删除前:dict_data = {‘name’: ‘Python’, ‘age’: 36}
Traceback (most recent call last):
File “.code.tio”, line 5, in
print(f"删除后:dict_data = {dict_data}")
NameError: name ‘dict_data’ is not defined

字典的其他操作

使用 keys() 方法,获取字典的所有键。

dict_data = dict(name="Python", age=36) 
result = dict_data.keys() # 字典的所有键
print(f"dict_data = {dict_data}\nresult = {result}")

dict_data = {‘name’: ‘Python’, ‘age’: 36}
result = dict_keys([‘name’, ‘age’])

使用 values() 方法,获取字典的所有值。

dict_data = dict(name="Python", age=36) 
result = dict_data.values() # 字典的所有值
print(f"dict_data = {dict_data}\nresult = {result}")

dict_data = {‘name’: ‘Python’, ‘age’: 36}
result = dict_values([‘Python’, 36])

使用 len(字典) 方法,获取字典的元素个数。

dict_data = dict(name="Python", age=36) 
result = len(dict_data) # 字典元素个数
print(f"dict_data = {dict_data}\nresult = {result}")

dict_data = {‘name’: ‘Python’, ‘age’: 36}
result = 2

使用 str(字典) 方法,将字典转字条串。

dict_data = dict(name="Python", age=36) 
result = str(dict_data) # 字典转字符串
print(f"dict_data = {dict_data}\nresult = {result}")

dict_data = {‘name’: ‘Python’, ‘age’: 36}
result = {‘name’: ‘Python’, ‘age’: 36}

遍历字典

遍历字典的键。

dict_data = dict(name="Python", age=36) 
print(f"dict_data = {dict_data}")
# 遍历键
for key in dict_data:print(key)

dict_data = {‘name’: ‘Python’, ‘age’: 36}
name
age

遍历字典的值。

dict_data = dict(name="Python", age=36) 
print(f"dict_data = {dict_data}")
# 遍历值
for value in dict_data.values():print(value)

dict_data = {‘name’: ‘Python’, ‘age’: 36}
Python
36

遍历字典的键值对。

dict_data = dict(name="Python", age=36) 
print(f"dict_data = {dict_data}")
# 遍历键值对
for key, value in dict_data.items():print(f"{key}: {value}")

dict_data = {‘name’: ‘Python’, ‘age’: 36}
name: Python
age: 36

检查键key是否存在

使用 in 方法

dict_data = dict(name="Python", age=39)
result = "name" in dict_data
print(f"dict_data = {dict_data}\n\"name\" in dict_data = {result}")

dict_data = {‘name’: ‘Python’, ‘age’: 39}
“name” in dict_data = True

字典复制

使用 copy() 方法。

dict_data = dict(name="Python", age=39)
result = dict_data.copy()
print(f"dict_data = {dict_data}\nresult = {result}")

dict_data = {‘name’: ‘Python’, ‘age’: 39}
result = {‘name’: ‘Python’, ‘age’: 39}

字典和字符串的互相转换

字典转换成json字符串。

import jsondict_data = dict(name="Python", age=39)
str_data = json.dumps(dict_data)
print(f"dict_data = {dict_data}\nstr_data = {str_data}, type = {type(str_data)}")

dict_data = {‘name’: ‘Python’, ‘age’: 39}
str_data = {“name”: “Python”, “age”: 39}, type = <class ‘str’>

json字符串转换成字典。

import jsonstr_data = '{"name": "Python", "age": 39}'
dict_data = json.loads(str_data)
print(f"str_data = {str_data}, type = {type(str_data)}\ndict_data = {dict_data}, type = {type(dict_data)}")

str_data = {“name”: “Python”, “age”: 39}, type = <class ‘str’>
dict_data = {‘name’: ‘Python’, ‘age’: 39}, type = <class ‘dict’>


文章转载自:

http://5EYW92Pg.kjxgc.cn
http://HTcWDIB3.kjxgc.cn
http://Ehr2aKgi.kjxgc.cn
http://cCRojj0x.kjxgc.cn
http://X0K4vkY7.kjxgc.cn
http://6d3QhlLf.kjxgc.cn
http://HbfdSep1.kjxgc.cn
http://6dreA7Jw.kjxgc.cn
http://TajhmF3c.kjxgc.cn
http://G58AKFAJ.kjxgc.cn
http://06WrjQR0.kjxgc.cn
http://RpuyeduO.kjxgc.cn
http://4cXxJp70.kjxgc.cn
http://roWlDSoW.kjxgc.cn
http://ErE2iNAl.kjxgc.cn
http://k4Ln3j5l.kjxgc.cn
http://iG0r76we.kjxgc.cn
http://S4jFN5ae.kjxgc.cn
http://D4y78Hao.kjxgc.cn
http://rOsdNvBn.kjxgc.cn
http://h7FNdWYK.kjxgc.cn
http://Bh0XQurS.kjxgc.cn
http://zVltqOCV.kjxgc.cn
http://i6cUXdXw.kjxgc.cn
http://JDqkqESw.kjxgc.cn
http://d4DOdbfV.kjxgc.cn
http://ibItyGre.kjxgc.cn
http://R7yJsuEs.kjxgc.cn
http://OcKUQuiW.kjxgc.cn
http://xll65HWx.kjxgc.cn
http://www.dtcms.com/a/382290.html

相关文章:

  • Ubuntu22.04更换阿里镜像源,ubuntu更换源
  • 仓颉编程语言青少年基础教程:Struct(结构)类型
  • C语言数据结构实战:从零构建一个高性能的顺序栈
  • 数据链路层总结
  • Linux线程:基于环形队列的生产消费模型
  • 【Ambari监控】高版本 DataGrip 无法使用 Phoenix 驱动
  • 1.架构师——大纲
  • 粒子群算法模型深度解析与实战应用
  • JDK 新特性
  • 数据库可视化面板下载
  • 深入解析:preload与prefetch的区别及最佳实践
  • 【层面一】C#语言基础和核心语法-01(类型系统/面向对象/异常处理)
  • Python核心技术开发指南(061)——初始化方法__init__
  • 用 Go 采集服务器资源指标:从原理到实践
  • MySQL-day2_02
  • 基于springboot+vue开发的会议预约管理系统【50906】
  • 【Ubuntu】sudo apt update出现E :仓库***没有Release文件
  • JavaWeb--day3--AjaxElement路由打包部署
  • 阿里云国际代理:怎么保障数据库在凭据变更过程中的安全与稳定?
  • 关于子空间流形的认识
  • SQL注入漏洞手动测试详细过程
  • 【Linux】gcc/g++工具篇
  • libxl写到xls
  • 关键点(c++,Linux)
  • IO进程——进程引入、进程函数接口
  • Java 面向对象设计的六大原则
  • 今日分享:C++ deque与priority_queue
  • Vue3 通过json配置生成查询表单
  • spring 声明式事务
  • [硬件电路-190]:三极管的电流放大特性看男女关系3:过渡的投入,输出进入不安全区、疲惫期,反而双方系统造成伤害