集合的特性:
集合是无序的,集合中的元素是唯一的,不允许重复。
集合的定义
定义集合变量:
变量名称 = {元素1,元素2,......,元素n}
定义空集合:
变量名称 = set()
set_name = {"python",666,6.66}
print(set_name)
set_name1 = set()
print(set_name1)
'''
结果为:
{666, 'python', 6.66}
set()
'''
集合的修改
因为集合是无序的,所以不支持下标索引访问
添加新元素
语法:集合.add(元素)
将指定元素添加到集合中
注意:和list不同,添加时,集合本身被修改,添加了新元素。
set_name = {"python",666,6.66}
print(f"修改前:{set_name}")
set_name.add("c");
print(f"修改后:{set_name}")
#尝试添加重复元素
set_name.add("python")
print(f"添加重复元素后:{set_name}")
#因为集合中不允许有重复元素,所以添加失败
'''
运行结果:
修改前:{'python', 666, 6.66}
修改后:{'c', 'python', 666, 6.66}
添加重复元素后:{'c', 'python', 666, 6.66}
'''
移除元素
语法:集合.remove(元素)
将指定元素从集合中移除,集合本身被修改
set_name = {"python",666,6.66}
print(f"移除元素前:{set_name}")
#移除元素666
set_name.remove(666)
print(f"移除元素后:{set_name}")
'''
运行结果:
移除元素前:{'python', 6.66, 666}
移除元素后:{'python', 6.66}
'''
取出元素
语法:集合.pop()
从集合中随机取出元素
注意:返回取出的元素,原本集合也被改变
set_name = {"python",666,6.66}
print(f"取出元素前:{set_name}")
#随机取出一个元素
pop = set_name.pop()
print(f"被取出的元素:{pop}")
print(f"取出元素后:{set_name}")
'''
运行结果:
取出元素前:{'python', 6.66, 666}
被取出的元素:python
取出元素后:{6.66, 666}
'''
清空集合
语法:集合.clear()
清空集合,集合本身被清空
set_name = {"python",666,6.66}
print(f"清空集合前:{set_name}")
#清空集合
set_name.clear()
print(f"清空集合后:{set_name}")
'''
运行结果:
清空集合前:{666, 'python', 6.66}
清空集合后:set()
'''
取差集
语法:集合.difference(集合2)
取出集合1和集合2的差集,集合1有而集合2没有的
得到一个新的集合,集合1和集合2不变
set1 = {1,2,3,4,5,6}
set2 = {2,4,6,8,10,12}
print(f"取差集前set1:{set1}, set2:{set2}")
#取差集
set3 = set1.difference(set2)
print(f"差集set3为:{set3}")
print(f"取差集后set1:{set1}, set2:{set2}")
'''
运行结果为:
取差集前set1:{1, 2, 3, 4, 5, 6}, set2:{2, 4, 6, 8, 10, 12}
差集set3为:{1, 3, 5}
取差集后set1:{1, 2, 3, 4, 5, 6}, set2:{2, 4, 6, 8, 10, 12}
'''
消除差集
语法:集合.difference_update(集合2)
消除2个集合的差集,对比集合1和集合2,在集合1内,删除和集合2相同的元素。
集合1被修改,集合2不变
set1 = {1,2,3,4,5,6}
set2 = {2,4,6,8,10,12}
print(f"消除前set1:{set1}, set2:{set2}")
#消除差集
set1.difference_update(set2)
print(f"消除后set1:{set1}, set2:{set2}")
'''
运行结果为:
消除前set1:{1, 2, 3, 4, 5, 6}, set2:{2, 4, 6, 8, 10, 12}
消除后set1:{1, 3, 5}, set2:{2, 4, 6, 8, 10, 12}
'''
集合的合并
语法:集合.union(集合2)
将集合1和集合2组成新集合
得到新集合,集合1和集合2不变
set1 = {1,2,3,4,5,6}
set2 = {2,4,6,8,10,12}
print(f"合并前set1:{set1}, set2:{set2}")
#集合的合并
set3 = set1.union(set2)
print(f"合并完的集合set3为:{set3}")
print(f"合并后set1:{set1}, set2:{set2}")
'''
运行结果为:
合并前set1:{1, 2, 3, 4, 5, 6}, set2:{2, 4, 6, 8, 10, 12}
合并完的集合set3为:{1, 2, 3, 4, 5, 6, 8, 10, 12}
合并后set1:{1, 2, 3, 4, 5, 6}, set2:{2, 4, 6, 8, 10, 12}
'''
统计集合的元素数量
语法:len(集合)
统计集合中元素的数量
set1 = {1,2,3,4,5,6}
#统计集合中元素的数量
num = len(set1)
print(f"集合set1中元素的数量为:{num}")
'''
运行结果为:
集合set1中元素的数量为:6
'''
集合的遍历
集合不支持下标索引,所以不能用while循环遍历
可以用for循环遍历
set1 = {1,2,3,4,5,6}
#遍历集合
for set in set1:
print(set)
'''
运行结果为:
1
2
3
4
5
6
'''