集合概念:
Python语言中结构数据类型有很多种,常见的就是集合类型,列表类型,元组类型和字典类型
集合是一个无序不重复元素的集合。它的主要功能是自动清除重复的元素。即集合中的元素是唯一的,不重复的。
创建集合时用大括号{}来包含其元素,相邻元素之间用逗号分隔,集合中元素个数没有限制
1.创建set集合的方法
①使用{}创建集合
语法格式:
setname = {element1,element2...elementn}
例1:
sets = {1, 2, 'w', "asd"}
print(sets)
运行结果:
set集合是无序的,所以每一次输出结果的顺序都会不一样
②使用set()函数创建集合
set()函数功能是将字符串,列表,元组,range 等可迭代对象转换成集合
语法格式:
setname = set(iteration)
例2:
set1 = set("hello word!")
set2 = set([1, 2, 3, 4, 5])
set3 = set((1, 2, 3, 4, 5))
print("set1:", set1)
print("set2:", set2)
print("set3:", set3)
运行结果:
2.访问set集合元素
由于集合内元素是无序的,所以不能用下标去访问,所以采用的方法是使用循环结构逐个将集合中的元素读取出来
例1:
a = {1, 'c', (1, 2)}
for element in a:
print(element, end=' ')
运行结果:
3.添加元素到set集合
使用 set 类型提供的 add() 方法实现向集合中添加元素的操作
语法格式:
setname.add(element)
例1:
x = {1, 2, 3, 4, 5}
x.add("hello")
print(x)
运行结果:
例2:
x = {1, 2, 3, 4, 5}
x.add([1, 2])
print(x)
运行结果:
注意:使用 add() 方法添加的元素,只能是数字、字符串、元组或者布尔类型(True 和 False)值,不能添加列表、字典、集合这类可变的数据,否则 Python 解释器会报 TypeError 错误
4.从set集合中删除元素
删除现有 set 集合中的指定元素,可以使用 remove() 方法或者discard()方法
语法结构:
setname.remove(element)
setname.discard(element)
例1(删除集合中存在的元素):
x = {1, 2, 3, 4, 5}
x.remove(1)
print(x)
运行结果:
例2(删除集合中不存在的元素):
x = {1, 2, 3, 4, 5}
x.remove(6)
print(x)
运行结果:
discard()方法和remove()方法唯一的区别就在于,discard()如果删除了一个不存在的集合中的元素,是不会报错的
5.set集合作交集,并集,差集
如下有两个集合,set1和set2
set1 = {1,2,3,4,5}
set2 = {4,5,6,7}
两个集合中既有相同的元素,又有不同的元素
①两个集合作交集(&)
就是取两个集合公共的元素
例1
:
set1 = {1, 2, 3, 4, 5}
set2 = {4, 5, 6, 7}
print(set1&set2)
运行结果:
②两个集合作并集(|)
取两个集合全部的元素
例2:
set1 = {1, 2, 3, 4, 5}
set2 = {4, 5, 6, 7}
print(set1|set2)
运行结果:
③两个集合作差集(-)
取一个集合中另一集合没有的元素
例3:
set1 = {1, 2, 3, 4, 5}
set2 = {4, 5, 6, 7}
print(set1-set2)
运行结果:
④两个集合作对称差集(^)
取集合 A 和 B 中不属于 A&B 的元素
例4:
set1 = {1, 2, 3, 4, 5}
set2 = {4, 5, 6, 7}
print(set1^set2)
运行结果:
6.set集合的常用方法
方法名称
功能
add()
向集合中添加元素 (数字、字符串、元组或者布尔类型)
clear()
清空集合中所有的元素
copy()
拷贝一个集合给另一个集合
discard()
删除集合中的元素
remove()
删除集合中的元素
pop()
取集合中的一个元素
union()
取两个集合的并集
intersection()
取两个集合的交集
update()
添加列表或者集合中的元素到指定集合中