Python中的字典(dict)和集合(set)的使用方法详解
Python中字典和集合是两种非常常用的数据类型,本文将详细介绍它们的使用方法。
一、字典(dict)
字典是Python中一种可变的、无序的、键值对映射的数据结构,可用于存储任意可哈希类型的对象。
1. 创建字典
创建字典有多种方法,主要有两种:
(1) 直接使用{}创建空字典或者使用{key: value, …}来创建一个有初始值的字典。
例如:
empty_dict = {}
tel_dict = {'Tom': 123, 'Jerry': 456, 'Kitty': 789}
(2) 使用dict()函数,可以用zip()函数将两个列表打包成一个字典,也可以通过关键字参数来创建字典。
例如:
# zip()函数 keys = ['Tom', 'Jerry', 'Kitty'] values = [123, 456, 789] zip_dict = dict(zip(keys, values)) # 关键字参数 kw_dict = dict(a=1, b=2, c=3)
2. 字典基本操作
(1) 读取字典
使用方括号并给出键,就可以获取字典中对应的值。
例如:
tel_dict = {'Tom': 123, 'Jerry': 456, 'Kitty': 789}
print(tel_dict['Tom'])
(2) 更改字典
可以通过赋值来更改字典中的值。
例如:
tel_dict['Tom'] = 111 print(tel_dict)
(3) 增加字典
同样使用方括号,新建或修改键来增加字典。
例如:
tel_dict['Mary'] = 345 print(tel_dict)
(4) 删除字典
使用del关键字删除字典中的键值对或整个字典。
例如:
del tel_dict['Kitty'] print(tel_dict) del tel_dict print(tel_dict) #NameError: name 'tel_dict' is not defined # 清空字典 tel_dict.clear() print(tel_dict)
3. 字典方法
(1) keys()
返回一个由字典中所有键组成的列表。
例如:
tel_dict = {'Tom': 123, 'Jerry': 456, 'Kitty': 789}
keys_list = list(tel_dict.keys()) #获取所有键组成列表
(2) values()
返回一个由字典中所有值组成的列表。
例如:
tel_dict = {'Tom': 123, 'Jerry': 456, 'Kitty': 789}
values_list = list(tel_dict.values()) #获取所有值组成列表
(3) items()
返回一个由字典中所有键值对元组组成的列表。
例如:
tel_dict = {'Tom': 123, 'Jerry': 456, 'Kitty': 789}
items_list = list(tel_dict.items()) #获取所有键值对元组组成列表
(4) get()
根据键获取对应的值,如果键不存在返回给定的默认值。
例如:
tel_dict = {'Tom': 123, 'Jerry': 456, 'Kitty': 789}
value = tel_dict.get('John', '000') #获取键值,若键不存在,则返回默认值‘000’
(5) pop()
根据键删除对应的键值对,如果键不存在则返回给定的默认值。
例如:
tel_dict = {'Tom': 123, 'Jerry': 456, 'Kitty': 789}
value = tel_dict.pop('John', '000') #删除键值,若键不存在,则返回默认值‘000’
(6) update()
使用另一个字典或可迭代对象,更新字典中的键值对。
例如:
tel_dict = {'Tom': 123, 'Jerry': 456, 'Kitty': 789}
new_dict = {'Mary': 345, 'John': 678}
tel_dict.update(new_dict) #更新tel_dict
print(tel_dict)
二、集合(set)
集合中的元素是不可重复的,如果存在,则只会保留一个。
1. 创建集合
使用{}和set()函数都可以创建集合。
例如:
empty_set = set() #创建空集合
num_set1 = {1, 2, 3}
num_set2 = set([1, 2, 3])
2. 集合基本操作
(1) 添加元素
可以使用add()方法或者update()方法添加元素。
例如:
num_set = {1, 2}
num_set.add(3)
print(num_set)
num_set.update([4, 5])
print(num_set)
(2) 删除元素
使用remove()方法或discard()方法删除元素。
例如:
num_set = {1, 2, 3, 4, 5}
num_set.remove(2)
print(num_set)
num_set.discard(6) #删除元素6,若元素不存在,则不进行操作
(3) 集合运算
集合支持如下的运算:
并集(|):返回两个集合的并集。
交集(&):返回两个集合的交集。
差集(-):返回两个集合的差集。
对称差集(^):返回两个集合不相交的部分。
例如:
set1 = {1, 2, 3, 4}
set2 = {3, 4, 5, 6}
union_set = set1 | set2
print('并集:', union_set)
intersect_set = set1 & set2
print('交集:', intersect_set)
diff_set = set1 - set2
print('差集:', diff_set)
symdiff_set = set1 ^ set2
print('对称差集:', symdiff_set)
3. 集合方法
(1) pop()
随机删除集合中的一个元素,并返回该元素。
例如:
num_set = {1, 2, 3, 4, 5}
value = num_set.pop() #随机删除一个元素,返回该元素的值
(2) clear()
清空一个集合。
例如:
num_set = {1, 2, 3, 4, 5}
num_set.clear()
print(num_set)
(3) difference()
返回一个包含所有在集合1但不在集合2中的元素的集合。
例如:
set1 = {1, 2, 3, 4}
set2 = {3, 4, 5, 6}
diff_set = set1.difference(set2)
print(diff_set)
(4) symmetric_difference()
返回两个集合的对称差集,即只在一个集合中出现的元素。
例如:
set1 = {1, 2, 3, 4}
set2 = {3, 4, 5, 6}
symdiff_set = set1.symmetric_difference(set2)
print(symdiff_set)
以上是Python中字典和集合的基本用法和方法,可以通过实际操作加深理解和熟悉。
