Python入门(五):字典(Dict)的使用

简介: 在Python语言中内置的数据结构有:列表(list)、元组(tuple)、字典(dict)、集合(set), 这4种数据结构和基础数据类型(整数、浮点数等)统称为“内置类型”(Built-in Types)。字典(dict)是一种可变的容器模型,且可存储任意类型对象。字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中 ,字典中的键必须是唯一的,即不能出现重复的键但值则不必。值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组。

在Python语言中内置的数据结构有:列表(list)、元组(tuple)、字典(dict)、集合(set), 这4种数据结构和基础数据类型(整数、浮点数等)统称为“内置类型”(Built-in Types)。字典(dict)是一种可变的容器模型,且可存储任意类型对象。字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中 ,字典中的键必须是唯一的,即不能出现重复的键但值则不必。值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组。


字典的基本格式为


dict1 = {key1 : value1, key2 : value2 }
复制代码


具体使用如下:


#声明一个字典
dict1={"语文":99,"数学":98,"英语":97}
dict1
输出:{'语文': 99, '数学': 98, '英语': 97}
#字典中的键可以是不同类型的,但需是不可变的数据类型,比如字符串,数字,元组等
dict1={"name":"张三",98:"成绩",("上海","中国"):"地址"}
dict1
输出:会报错“raceback (most recent call last):File "<stdin>", line 1, in <module> ypeError: unhashable type: 'list'”
#如果用可变的数据类型做键,比如list
dict1={"name":"张三",98:"成绩",["上海","中国"]:"地址"}
dict1
输出:{'name': '张三', 98: '成绩', ('上海', '中国'): '地址'}
#还可以创建空的字典
dict1={}
dict1
输出:{}
#还可以声明空value的字典,只要键,没有value,并且value的值可以是重复的,所以这里是重复的空value
dict1={"数学","语文","英语"}
dict1
输出:{'英语', '语文', '数学'}
#如果键重复,则后面的同样的键的值会覆盖前面的键的值
dict1={"语文":99,"语文":98,"英语":97}
dict1
输出:{'语文': 98, '英语': 97}
#对字典的操作,都是通过对键访问
#对于字典dict1={"语文":99,"语文":98,"英语":97},访问键为语文的值
dict1={"语文":99,"语文":98,"英语":97}
dict1["语文"]
输出:98
#还可以使用get(),get()方法其实就是根据 key 来获取 value,
#当使用方括号语法访问并不存在的 key 时,字典会引发 KeyError 错误;但如果使用 get() 方法访问不存在的 key,该方法会简单地返回 None,不会导致错误。
dict1={"语文":99,"语文":98,"英语":97}
print(dict1.get("语文"))
输出:98
#添加键值对,只需要对不存在的key进行赋值即可
dict1={"语文":99,"语文":98,"英语":97}
dict1["化学"]=89
dict1
输出:{'语文': 98, '英语': 97, '化学': 89}
#修改键值对的值,只需要对key进行重新赋值
dict1={"语文":99,"语文":98,"英语":97}
dict1["英语"]=150
dict1
输出:{'语文': 98, '英语': 150}
#还可以使用update()来对键值对进行修改了添加
#update() 方法可使用一个字典所包含的 key-value 对来更新己有的字典。
# 在执行 update() 方法时,如果被更新的字典中已包含对应的 key-value 对,那么原 value 会被覆盖;
# 如果被更新的字典中不包含对应的 key-value 对,则该 key-value 对被添加进去。
dict1={"语文":99,"数学":98,"英语":97}
dict1.update({"语文":199,"化学":98})
dict1
输出:{'语文': 199, '数学': 98, '英语': 97, '化学': 98}
#删除字典键值对使用del
dict1={"语文":99,"语文":98,"英语":97}
del dict1["英语"]
dict1
输出:{'语文': 98, '英语': 97}
#还可以使用del删除字典
dict1={"语文":99,"语文":98,"英语":97}
del dict1
dict1
输出:"Traceback (most recent call last):File "<stdin>", line 1, in <module> NameError: name 'dict1' is not defined(dict1字典没有定義)"
#还可以使用clear()清空字典,
dict1={"语文":99,"语文":98,"英语":97}
dict1.clear()
dict1
输出:{} "输出一个空的字典,即dict1字典还在,只是没有了元素,不同于del"
#将字典转换成字符串
dict1={"语文":99,"语文":98,"英语":97}
str(dict1)
输出:"{'语文': 98, '英语': 97}"
#同样可以将字典转化成list
dict1={"语文":99,"语文":98,"英语":97}
list(dict1)
输出:['语文', '英语']
#items()、keys()、values() 分别用于获取字典中的所有 key-value 对、所有 key、所有 value。这三个方法依次返回 dict_items、dict_keys 和 dict_values 对象
#通过type可以返回变量类型
#字典的便利,传统的遍历只能输出键
dict1={"语文":99,"语文":98,"英语":97}
for item in dict1:
    print(item)
输出:语文 英语
#输出每个键值对
dict1={"语文":99,"语文":98,"英语":97}
d1= dict1.items();
print(type(d1))
输出:<class 'dict_items'>
for item in d1:
    print(item)
输出:('语文', 98)  ('英语', 97)
#输出每个值
dict1={"语文":99,"语文":98,"英语":97}
d1= dict1.values();
print(type(d1))
输出:<class 'dict_values'>
for item in d1:
    print(item)
输出:98 97
#输出每个键
dict1={"语文":99,"语文":98,"英语":97}
d1= dict1.keys();
print(type(d1))
输出:<class 'dict_keys'>
for item in d1:
    print(item)
输出:语文 英语
复制代码


以上就是python中列表的简单使用!

目录
相关文章
|
29天前
|
SQL 关系型数据库 数据库
Python SQLAlchemy模块:从入门到实战的数据库操作指南
免费提供Python+PyCharm编程环境,结合SQLAlchemy ORM框架详解数据库开发。涵盖连接配置、模型定义、CRUD操作、事务控制及Alembic迁移工具,以电商订单系统为例,深入讲解高并发场景下的性能优化与最佳实践,助你高效构建数据驱动应用。
248 7
|
1月前
|
存储 JavaScript Java
(Python基础)新时代语言!一起学习Python吧!(四):dict字典和set类型;切片类型、列表生成式;map和reduce迭代器;filter过滤函数、sorted排序函数;lambda函数
dict字典 Python内置了字典:dict的支持,dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度。 我们可以通过声明JS对象一样的方式声明dict
156 1
|
2月前
|
测试技术 开发者 Python
Python单元测试入门:3个核心断言方法,帮你快速定位代码bug
本文介绍Python单元测试基础,详解`unittest`框架中的三大核心断言方法:`assertEqual`验证值相等,`assertTrue`和`assertFalse`判断条件真假。通过实例演示其用法,帮助开发者自动化检测代码逻辑,提升测试效率与可靠性。
308 1
|
3月前
|
API 数据安全/隐私保护 开发者
Python自定义异常:从入门到实践的轻松指南
在Python开发中,自定义异常能提升错误处理的精准度与代码可维护性。本文通过银行系统、电商库存等实例,详解如何创建和使用自定义异常,涵盖异常基础、进阶技巧、最佳实践与真实场景应用,助你写出更专业、易调试的代码。
162 0
|
3月前
|
IDE 开发工具 数据安全/隐私保护
Python循环嵌套:从入门到实战的完整指南
循环嵌套是Python中处理多维数据和复杂逻辑的重要工具。本文通过实例讲解嵌套循环的基本用法、常见组合、性能优化技巧及实战应用,帮助开发者掌握其核心思想,避免常见错误,并探索替代方案与进阶方向。
340 0
|
1月前
|
Cloud Native 算法 API
Python API接口实战指南:从入门到精通
🌟蒋星熠Jaxonic,技术宇宙的星际旅人。深耕API开发,以Python为舟,探索RESTful、GraphQL等接口奥秘。擅长requests、aiohttp实战,专注性能优化与架构设计,用代码连接万物,谱写极客诗篇。
Python API接口实战指南:从入门到精通
|
1月前
|
存储 Java 调度
Python定时任务实战:APScheduler从入门到精通
APScheduler是Python强大的定时任务框架,通过触发器、执行器、任务存储和调度器四大组件,灵活实现各类周期性任务。支持内存、数据库、Redis等持久化存储,适用于Web集成、数据抓取、邮件发送等场景,解决传统sleep循环的诸多缺陷,助力构建稳定可靠的自动化系统。(238字)
431 1
|
2月前
|
调度 数据库 Python
Python异步编程入门:asyncio让并发变得更简单
Python异步编程入门:asyncio让并发变得更简单
176 5
|
2月前
|
存储 JSON 数据管理
Python字典:高效数据管理的瑞士军刀
Python字典基于哈希表实现,提供接近O(1)的高效查找,支持增删改查、遍历、合并等丰富操作,广泛应用于计数、缓存、配置管理及JSON处理。其灵活性与性能使其成为数据处理的核心工具。
441 0

推荐镜像

更多