1.集合类型的定义
集合set是Python中的一种数据结构,它与列表相似,可以用来存储多个数据元素,不同之处是,集合由不同的元素组成,可以起到去重的作用,并且元素的存放是无序的,需要注意的是,集合中的元素不能是列表,集合,字典等可变对象。
集合类型与数学中的集合概念一致,集合元素不可更改,不能是可变数据类型。
那么创建一个集合,我们可以采用三种方法:如下👇👇👇
(1)使用花括号创建
s1={"红色" , "绿色" , "蓝色" , "黑色" , "红色"} print(s1) 输出结果如下: {'黑色', '红色', '绿色', '蓝色'}
(2)使用set()函数创建
s1={"红色" , "绿色" , "蓝色" , "黑色" , "红色"} s2=set(s1) print(s2) 输出结果如下: {'红色', '黑色', '绿色', '蓝色'} s1=set("pypy123") print(s1) 输出结果如下: {'y', 'p', '2', '1', '3'}
(3)使用推导式创建
s1={1,1,2,2,3,3,4,4,5} s2={x*2 for x in s1} print(s2) s3={x for x in s1 if x%2!=0} print(s3) 输出结果如下: {2, 4, 6, 8, 10} {1, 3, 5}
2.集合类型的基本操作
(1)访问集合中的元素
#使用for循环 s1=set(["Adam" , "Lisa" , "Bart"]) print(s1) for name in s1 : print(name) 输出结果如下: {'Bart', 'Lisa', 'Adam'} Bart Lisa Adam
(2)集合操作函数和方法
下面我们介绍几种集合的处理方法,👇👇👇
那么我们通过以下几个小程序的例子,来更好的理解这些方法!!!👇👇👇
#s.add() s1=set(["A" , "B" , "C" , "D"]) print(s1) s1.add("E") print(s1) 输出结果如下: {'B', 'C', 'A', 'D'} {'B', 'E', 'D', 'C', 'A'} #集合中元素是无序的,所以添加元素也是随机的在任意一个位置来添加。
#s.remove() s1=set(["A" , "B" , "C" , "D"]) print(s1) s1.remove("E") print(s1) 输出结果如下: {'B', 'A', 'C', 'D'} Traceback (most recent call last): File "D:/GameDownload/Python/python代码体验区/python基础1.py", line 3, in <module> s1.remove("E") KeyError: 'E' #可以看到程序报错,这是因为所要删除的元素"E"并不在集合中,所以s.remove()方法就会报错。
#s.discard() s1=set(["A" , "B" , "C" , "D"]) print(s1) s1.discard("E") print(s1) 输出结果如下: {'A', 'C', 'D', 'B'} {'A', 'C', 'D', 'B'} #s.discard()方法同样是删除集合中的元素,它与s.remove()方法不同的是, #如果此元素在集合中那么就正常删除;如果不在,则输出原集合,程序并不会报错!!!
#s.clear() s1=set(["A" , "B" , "C" , "D"]) print(s1) s1.clear() #清空集合 print(s1) 输出结果如下: {'A', 'D', 'B', 'C'} set()
#s.pop() s1=set(["A" , "B" , "C" , "D"]) print(s1) print(s1.pop()) #随机的返回集合中的任何一个元素 输出结果如下: {'D', 'A', 'B', 'C'} D #如果这是一个空集合,则s.pop()会产生KeyError错误!!!
#del s s1=set(["A" , "B" , "C" , "D"]) print(s1) del s1 print(s1) 输出结果如下: {'C', 'B', 'A', 'D'} Traceback (most recent call last): File "D:/GameDownload/Python/python代码体验区/python基础1.py", line 4, in <module> print(s1) NameError: name 's1' is not defined #删除集合s1之后,此集合已不存在,再进行输出,程序就会产生NameError错误!!!
#len(),x in s,x not in s s1=set(["A" , "B" , "C" , "D"]) print(s1) print(len(s1)) print("A" in s1) print("D" not in s1) 输出结果如下: {'D', 'A', 'B', 'C'} 4 True False
#set() s1=list(["A" , "B" , "C" , "D"]) s2=tuple(["A" , "B" , "C" , "D"]) print(set(s1)) print(set(s2)) 输出结果如下: {'C', 'A', 'D', 'B'} {'C', 'A', 'D', 'B'}