个人简介:机电专业在读研究生,CSDN内容合伙人,博主个人首页
Python入门专栏:《Python入门》欢迎阅读,一起进步!
码字不易,如果觉得文章不错或能帮助到你学习,可以点赞收藏评论+关注哦!
欢迎来到本系列教程的第八篇,这一篇博客将介绍关于字典和集合的基础知识。字典和集合是 Python 中常用的数据结构,它们可以用于存储和处理各种类型的数据。在本篇博客中,我们将一步步介绍字典的创建、访问和操作,以及集合的创建和运算。
字典和列表类似,也是可变序列,不过与列表不同,它是无序的可变序列,保存的内容是以 “键值对(key-value)” 的形式存放的,即,字典中的每个元素由一个键和一个值组成,键和值之间用冒号(:)分隔,每个键值对之间用逗号(,)分隔。字典的键必须是唯一的,而值可以是任意类型的对象。
在 Python 中,可以使用花括号 {}
和冒号来创建一个字典。例如:
person = {"name": "Alice", "age": 25, "gender": "female"}
也可以使用内置的 dict()
函数来创建字典。例如:
person = dict(name="Alice", age=25, gender="female")
要删除字典,可以使用 del
语句。例如:
person = {"name": "Alice", "age": 25, "gender": "female"}
del person
另外,如果只是想删除字典的全部元素,可以使用字典对象的 clear()
方法实现。执行 clear()
方法后,原字典将变为空字典。下面的代码将清除字典的全部元素:
person. clear()
除了上面介绍的方法可以删除字典元素,还可以使用字典对象的 pop()
方法删除并返回指定 “键” 的元素,以及使用字典对象的 popitem()
方法随机地移除字典中的一个键值对,并返回被移除的键和值。
可以通过字典中的键来访问对应的值。例如:
person = {"name": "Alice", "age": 25, "gender": "female"}
print(person["name"])
输出结果为:
Alice
如果访问的键不存在,将会抛出 KeyError
异常。为了避免这种情况,可以使用 get()
方法来获取值。例如:
person = {"name": "Alice", "age": 25, "gender": "female"}
print(person.get("height", "Unknown")) # get 方法设置默认值,当指定的键不存在时,得到的结果就是指定的默认值。
输出结果为:
Unknown
Python 中,字典对象提供了 items()
、values()
和 keys()
方法,用于返回字典的 “键值对”、值和键列表,可以通过 for
循环遍历该字典的 “键值对”、值和键列表:
person = {"name": "Alice", "age": 25, "gender": "female"}
for key, value in person.items():
print(key, value)
for value in person.values():
print(value)
for key in person: # 等效于 for key in person.keys():
print(key)
'''
输出:
name Alice
age 25
gender female
Alice
25
female
name
age
gender
'''
可以使用赋值运算符来添加、修改和删除字典的元素。例如,添加新的键值对:
person = {"name": "Alice", "age": 25, "gender": "female"}
person["height"] = 165
修改已有键的值:
person = {"name": "Alice", "age": 25, "gender": "female"}
person["age"] = 26
删除指定键的键值对:
person = {"name": "Alice", "age": 25, "gender": "female"}
del person["gender"]
当删除一个不存在的键时,将抛出 KeyError
异常。因此,需要将上面的代码修改为以下内容,从而防止删除不存在的元素时抛出异常:
person = {"name": "Alice", "age": 25, "gender": "female"}
if "gender" in person:
del person["gender"]
print(person)
字典推导式是一种简洁创建字典的方法,类似于列表推导式。它可以根据一个表达式和一个可迭代对象来创建字典。例如,将列表的元素作为键,其平方作为值创建字典:
numbers = [1, 2, 3, 4, 5]
squared_dict = {x: x**2 for x in numbers}
print(squared_dict)
输出结果为:
{1: 1, 2: 4, 3: 9, 4: 16, 5: 25}
集合是一种无序、不重复元素的数据结构。集合中的元素可以是任意类型的(如整数、浮点数、字符串、元组等),它有可变集合(set) 和不可变集合(frozenset) 两种。这里所要介绍的 set 集合是可变序列。在形式上,集合的所有元素都放在一-对大括号 “{}” 中,两个相邻元素间使用逗号 “,” 分隔。集合最好的应用就是成员检测和去重,因为集合中的每个元素都是唯一的。
在 Python 中,可以使用花括号 “{}” 或 set()
函数来创建一个集合。例如:
fruits = {"apple", "banana", "cherry"}
nums = {3,1,4,1,5,9,2,6}
set1 = {'Python',28,('人生苦短','我用Python')}
使用 set()
函数将列表、元组等其他可迭代对象转换为集合:
fruits = set("人生苦短,我用Python")
nums = set([3,1,4,1,5,9,2,6])
set1 = ( ('Python',28,('人生苦短','我用Python')) )
要删除集合,可以使用 del
语句。例如:
fruits = {"apple", "banana", "cherry"}
del fruits
注意:
- 在创建集合时,如果输入了重复的元素,Python 会自动只保留一个。
- 由于 Python 中的 set 集合是无序的,所以每次输出时元素的排列顺序可能不同。
- 创建集合时推荐采用
set()
函数实现。这是因为在创建空集合时,只能使用set()
函数实现,而不能使用一对大括号 “{}” 实现,在 Python 中,直接使用一对大括号 “{}” 表示创建一个空字典。
可以使用 add()
方法向集合中添加元素。例如:
fruits = {"apple", "banana", "cherry"}
fruits.add("orange")
可以使用 remove()
方法或 discard()
方法删除集合中的元素。它们的区别在于,remove()
方法在元素不存在时会抛出 KeyError
异常,而 discard()
方法不会。例如:
fruits = {"apple", "banana", "cherry"}
fruits.remove("banana")
fruits.discard("orange")
另外,如果只是想删除集合的全部元素,可以使用集合对象的 clear()
方法实现。执行 clear()
方法后,原集合将变为空集合。还可以使用集合对象的 pop()
方法随机移除并返回一个元素。
集合最常用的操作就是进行交集、并集和差集运算。例如,交集运算使用 &
符号,并集运算使用 |
符号,差集运算使用 -
符号:
fruits1 = {"apple", "banana", "cherry"}
fruits2 = {"banana", "orange", "pear"}
intersection = fruits1 & fruits2
union = fruits1 | fruits2
difference = fruits1 - fruits2
数据结构 | 是否可变 | 是否重复 | 是否有序 | 定义符号 |
---|---|---|---|---|
列表 | 可变 | 可重复 | 有序 | [] |
元组 | 不可变 | 可重复 | 有序 | () |
字典 | 可变 | 可重复 | 无序 | {key:value} |
集合 | 可变 | 不可重复 | 无序 | { } |
在本篇博客中,介绍了 Python 中的字典和集合。列字典是一种键值对的数据结构,用于存储和管理可变的数据集合,而集合是一种无序、不重复元素的数据结构,用于高效地进行成员检测和去重。
希望本篇博客对你学习 Python 有所帮助。祝你在学习 Python 的过程中取得成功!