本专栏系列为Pythong基础系列,每篇内容非常全面,包含全网各个知识点,非常长,请耐心看完。
每天都会更新新的内容,搜罗全网资源以及自己在学习和工作过程中的一些总结,可以说是非常详细和全面。
以至于为什么要写的这么详细:自己也是学过Python的,很多新手只是简单的过一篇语法,其实对于一个知识点的底层逻辑和其他使用方法以及参数详情根本不是很了解,这就导致学完很容易忘记,而且在实战过程中也是半知半解,所以自己就尽量写的详细些,让需要的人能更了解Python的每一个知识点,也感谢大家指正,祝大家早日从小码农变成大牛!
编程不仅是技术的堆砌,更是灵魂的创造,每一次代码的跳动,都是向世界宣告你的不凡!
- 博客主页:长风清留扬-优快云博客
- 系列专栏:Python基础专栏
- 每天更新大数据相关方面的技术,分享自己的实战工作经验和学习总结,尽量帮助大家解决更多问题和学习更多新知识,欢迎评论区分享自己的看法
- 感谢大家点赞👍收藏⭐评论
知识点思维导图整理
字典
Python中的字典(Dictionary)是一种非常强大且灵活的数据结构,用于存储键值对(key-value pairs)。字典是可变的,并且可以包含任意类型的对象作为键或值。在字典中,每个键都是唯一的,并且每个键都映射到一个值。
和列表的区别
- 列表 是 有序 的对象集合
- 字典 是 无序 的对象集合
类别 | 函数/方法 | 描述 |
---|---|---|
新增 | dict[key] = value |
通过键来新增或修改键值对。如果键不存在,则新增;如果键已存在,则修改其值。 |
update(other) |
使用另一个字典(或可迭代键值对对象)中的键值对来更新当前字典。如果other 中的键在字典中已存在,则其值将被覆盖;如果不存在,则将被添加。 |
|
修改 | dict[key] = new_value |
修改字典中指定键的值。如果键不存在,则相当于新增键值对。 |
setdefault(key, default=None) |
如果字典中不存在指定的键,则添加键并将值设为默认值(默认为None )。如果键已存在,则返回该键对应的值,但不会修改它。 |
|
删除 | del dict[key] |
删除字典中指定键的键值对。如果键不存在,将引发KeyError 。 |
pop(key, default=None) |
移除字典中指定键的键值对,并返回该键对应的值。如果键不存在且未指定默认值,将引发KeyError 。如果指定了默认值,则在键不存在时返回该默认值。 |
|
popitem() |
移除并返回字典中的最后一对键值对(Python 3.7+ 中按插入顺序)。如果字典为空,则引发KeyError 。 |
|
clear() |
移除字典中的所有键值对,使其变为空字典。 |
字典的基本特点
- 无序性:字典中的项(键值对)是无序的。你不能通过索引来访问字典中的元素,因为字典不保证元素的顺序。
- 键的唯一性:字典中的每个键都必须是唯一的,但值则不必。
- 可变性:字典是可变的,你可以添加、删除或修改字典中的项。
- 动态性:字典的大小是可变的,你可以根据需要添加或删除键值对。
语法
字典用 {} 定义
字典使用 键值对 存储数据,
键值对之间使用 , 分隔
键 key 是索引
值 value 是数据
键 和 值 之间使用: 分隔
键必须是唯一的
值 可以取任何数据类型,但 键 只能使用 字符串、数字或 元组
# 创建一个空字典
my_dict = {
}
# 使用dict创建一个空字典
my_dict2 = dict()
# 创建一个包含键值对的字典
my_dict = {
'name': 'John', 'age': 30, 'city': 'New York'}
# 创建一个包含键值对的字典
my_dict = dict(name='John',age=30, city='New York')
注意事项
- 键的唯一性:
字典中的每个键都必须是唯一的。如果尝试添加或修改一个已经存在的键,其对应的值将被新值替换。 - 键的不可变性:
字典的键必须是不可变的(immutable)。这意味着你可以使用数字、字符串或元组作为键,但不能使用列表或其他可变类型作为键。 - 值的可变性:
与键不同,字典的值可以是任何类型,包括可变类型(如列表、字典等)。 - 动态大小:
字典的大小是动态的,可以根据需要添加或删除键值对。 - 键的排序:
在Python 3.7及以后的版本中,字典会保持插入顺序(插入顺序即迭代顺序)。然而,这并不意味着字典是排序的或你可以依赖其顺序进行排序操作。如果你需要排序的键值对,应该使用 sorted() 函数对 items() 的结果进行排序。 - 性能:
字典的查找、插入和删除操作的平均时间复杂度为O(1),这使得字典成为处理大量键值对数据时的理想选择。 - 避免使用 dict 作为变量名:
dict 是Python中用于创建字典的内置类型。因此,应避免使用 dict 作为变量名,以避免覆盖或混淆内置类型。 - 空字典:
空字典不包含任何键值对,可以通过 {} 或 dict() 创建。 - 更新字典:
你可以使用 update() 方法来更新字典,该方法可以接受另一个字典或包含(key, value)对的可迭代对象,并将其内容合并到当前字典中。 - 字典推导式:
字典推导式提供了一种简洁的方式来创建或更新字典。它们类似于列表推导式,但生成的是字典而不是列表。
访问字典中的值
Python字典的取值方式非常直接和灵活,主要涉及到通过键(key)来访问对应的值(value)。
直接通过键访问
这是最常见的取值方式,直接使用方括号 [] 和键名来访问对应的值。
# 创建一个字典
my_dict = {
'name': 'John', 'age': 30, 'city': 'New York'}
# 通过键名访问值
name = my_dict['name'] # 直接通过键 'name' 访问值
print(name) # 输出: John
# 尝试访问不存在的键会抛出 KeyError
# try:
# print(my_dict['country']) # 这将引发 KeyError
# except KeyError as e:
# print(f"KeyError: {e}")
# 为了避免 KeyError,可以使用 get() 方法
country = my_dict.get('country', 'Unknown') # 如果键不存在,则返回 'Unknown'
print(country) # 输出: Unknown
使用 get() 方法
get() 方法提供了一种更安全的访问字典项的方式,如果指定的键不存在,则返回一个默认值(默认为 None),而不是抛出 KeyError。
# 使用 get() 方法访问存在的键
name_with_get = my_dict.get('name', 'Default Name') # 第二个参数是默认值,这里不会被使用
print(name_with_get) # 输出: John
# 使用 get() 方法访问不存在的键,并返回默认值
default_city = my_dict.get('country', 'Unknown City')
print(default_city) # 输出: Unknown City
字典的判断
判断键(Key)是否存在
my_dict = {
'a':