13.Python从入门到精通—Python 集合操作与方法概览
Python 集合集合的基本操作1、添加元素2、移除元素3、计算集合元素个数4、清空集合5、判断元素是否在集合中存在 集合内置方法完整列表
Python 集合
在Python中,集合是一种无序、不重复的数据类型。集合通常用于去重、检查成员资格等操作。Python提供了内置的set类型来实现集合,可以使用花括号{}或set()函数来创建一个集合。
使用花括号创建集合:
my_set = {'apple', 'banana', 'orange'}print(my_set) # 输出 {'banana', 'orange', 'apple'}
使用set()函数创建集合:
my_set = set(['apple', 'banana', 'orange'])print(my_set) # 输出 {'banana', 'orange', 'apple'}
可以使用add()方法向集合中添加元素:
my_set = {'apple', 'banana', 'orange'}my_set.add('pear')print(my_set) # 输出 {'banana', 'orange', 'pear', 'apple'}
可以使用remove()方法从集合中删除元素:
my_set = {'apple', 'banana', 'orange'}my_set.remove('banana')print(my_set) # 输出 {'orange', 'apple'}
可以使用in运算符来检查元素是否属于集合:
my_set = {'apple', 'banana', 'orange'}print('apple' in my_set) # 输出 Trueprint('pear' in my_set) # 输出 False
需要注意的是,集合中的元素必须是不可变的对象,因为集合的实现也是基于哈希表的。如果集合中包含可变对象,例如列表或字典,将引发TypeError异常。
集合的基本操作
1、添加元素
在Python中,可以使用以下方法向字典中添加元素:
使用键来添加元素:使用方括号[]和赋值符号=,将新的键值对添加到字典中。使用update()方法:使用update()方法将一个字典中的键值对添加到另一个字典中。下面是这两种方法的示例:
# 使用键来添加元素my_dict = {'key1': 'value1', 'key2': 'value2'}my_dict['key3'] = 'value3'print(my_dict) # 输出:{'key1': 'value1', 'key2': 'value2', 'key3': 'value3'}使用update()方法添加元素my_dict = {'key1': 'value1', 'key2': 'value2'}new_dict = {'key3': 'value3', 'key4': 'value4'}my_dict.update(new_dict)print(my_dict) # 输出:{'key1': 'value1', 'key2': 'value2', 'key3': 'value3', 'key4': 'value4'}
使用这些方法,可以方便地向字典中添加新的键值对。
2、移除元素
在Python中,可以使用以下方法从字典中移除元素:
使用del语句:使用del语句和键来删除字典中的元素。使用pop()方法:使用pop()方法和键来删除字典中的元素,并返回该元素的值。使用clear()方法:使用clear()方法删除字典中的所有元素。下面是这三种方法的示例:
# 使用del语句删除元素my_dict = {'key1': 'value1', 'key2': 'value2', 'key3': 'value3'}del my_dict['key2']print(my_dict) # 输出:{'key1': 'value1', 'key3': 'value3'}使用pop()方法删除元素my_dict = {'key1': 'value1', 'key2': 'value2', 'key3': 'value3'}value = my_dict.pop('key2')print(my_dict) # 输出:{'key1': 'value1', 'key3': 'value3'}print(value) # 输出:value2使用clear()方法删除所有元素my_dict = {'key1': 'value1', 'key2': 'value2', 'key3': 'value3'}my_dict.clear()print(my_dict) # 输出:{}
使用这些方法,可以方便地从字典中移除元素。
3、计算集合元素个数
在Python中,可以使用len()函数来计算集合中元素的个数。例如:
my_set = {'apple', 'banana', 'orange'}print(len(my_set)) # 输出 3
需要注意的是,如果集合中有重复的元素,它们只会被计算一次。
4、清空集合
在Python中,可以使用以下方法清空集合:
使用clear()方法:使用clear()方法删除集合中的所有元素。
下面是这种方法的示例:
# 使用clear()方法清空集合my_set = {1, 2, 3, 4, 5}my_set.clear()print(my_set) # 输出:set()
使用这种方法,可以方便地清空集合中的所有元素。
5、判断元素是否在集合中存在
在Python中,可以使用in运算符来判断一个元素是否在集合中存在。例如:
my_set = {'apple', 'banana', 'orange'}print('apple' in my_set) # 输出 Trueprint('pear' in my_set) # 输出 False
需要注意的是,in运算符的时间复杂度是O(1),因此它非常适合用于集合中元素的查找操作。
集合内置方法完整列表
Python中的集合类型内置了多个方法,包括:
add():向集合中添加元素。
clear():从集合中删除所有元素
copy():返回集合的副本。
difference():返回一个包含两个集合差集元素的新集合。
difference_update():从原集合中删除另一个集合中的元素。
discard():从集合中删除指定元素,如果元素不存在,则不执行任何操作。
intersection():返回两个集合的交集元素。
intersection_update():将原集合中的元素更新为两个集合的交集元素。
isdisjoint():判断两个集合是否没有交集。
issubset():判断一个集合是否为另一个集合的子集。
issuperset():判断一个集合是否为另一个集合的超集。
pop():随机删除并返回集合中的一个元素。
remove():从集合中删除指定元素,如果元素不存在,则引发KeyError异常。
symmetric_difference():返回两个集合的对称差集元素。
symmetric_difference_update():将原集合中的元素更新为两个集合的对称差集元素。
union():返回两个集合的并集元素。
update():将原集合中的元素更新为两个集合的并集元素。
# 创建两个集合set1 = {1, 2, 3}set2 = {3, 4, 5}# add():向集合中添加元素set1.add(6)print("add():", set1) # 输出:{1, 2, 3, 6}# clear():从集合中删除所有元素set1.clear()print("clear():", set1) # 输出:set()# copy():返回集合的副本set2_copy = set2.copy()print("copy():", set2_copy) # 输出:{3, 4, 5}# difference():返回一个包含两个集合差集元素的新集合diff = set2.difference(set1)print("difference():", diff) # 输出:{4, 5}# difference_update():从原集合中删除另一个集合中的元素set2.difference_update(set1)print("difference_update():", set2) # 输出:{4, 5}# discard():从集合中删除指定元素,如果元素不存在,则不执行任何操作set2.discard(4)print("discard():", set2) # 输出:{5}# intersection():返回两个集合的交集元素inter = set1.intersection(set2)print("intersection():", inter) # 输出:set()# intersection_update():将原集合中的元素更新为两个集合的交集元素set1.intersection_update(set2)print("intersection_update():", set1) # 输出:set()# isdisjoint():判断两个集合是否没有交集print("isdisjoint():", set1.isdisjoint(set2)) # 输出:True# issubset():判断一个集合是否为另一个集合的子集print("issubset():", set1.issubset(set2)) # 输出:False# issuperset():判断一个集合是否为另一个集合的超集print("issuperset():", set2.issuperset(set1)) # 输出:False# pop():随机删除并返回集合中的一个元素popped = set2.pop()print("pop():", popped) # 输出:5print("pop() after:", set2) # 输出:{3}# remove():从集合中删除指定元素,如果元素不存在,则引发KeyError异常set2.remove(3)print("remove():", set2) # 输出:set()# symmetric_difference():返回两个集合的对称差集元素sym_diff = set1.symmetric_difference(set2)print("symmetric_difference():", sym_diff) # 输出:{1, 2}# symmetric_difference_update():将原集合中的元素更新为两个集合的对称差集元素set1.symmetric_difference_update(set2)print("symmetric_difference_update():", set1) # 输出:{1, 2}# union():返回两个集合的并集元素union_set = set1.union(set2)print("union():", union_set) # 输出:{1, 2}# update():将原集合中的元素更新为两个集合的并集元素set1.update(set2)print("update():", set1) # 输出:{1, 2}
这些方法可以对集合进行各种操作,具体用法可以参考Python官方文档。