1.集合的定义
集合的元素是不可重复的
1
2
3
4
5
6
|
s = { 1 , 2 , 3 , 1 , 2 , 3 , 4 , 5 } print (s) print ( type (s)) s1 = { 1 } print (s1) print ( type (s1)) |
集合就算只有一个元素,也是集合,不需要像列表一样,加个逗号
那么如何定义一个空集合
1
2
3
4
5
|
s2 = {} print ( type (s2)) s3 = set ([]) print (s3) print ( type (s3)) |
集合的应用(去重)
1
2
|
li = [ 1 , 2 , 3 , 1 , 2 , 3 ] print ( list ( set (li))) |
2.集合的特性
集合只支持成员操作符和for循环
1
2
|
s = { 1 , 2 , 3 } print ( 1 in s) |
此时的返回值为true
1
2
3
4
|
for i in s: print (i,end = '|' ) for i,v in enumerate (s): print ( 'index: %s,value: %s' % (i,v)) |
3.集合的常用方法
集合是无序的数据类型,添加顺序和在集合中存储的数据不一定相同
1)增加元素
1
2
3
4
|
s = { 6 , 7 , 8 , 9 } #增加一个元素 s.add( 1 ) print (s) |
2)增加多个元素
1
2
|
s.update({ 5 , 3 , 2 }) ##使用update命令 print (s) |
3)删除
1
2
|
s.pop() print (s) |
删除指定元素
1
2
|
s.remove( 5 ) print (s) |
4)集合运算
1
2
|
s = { 1 , 2 , 3 } s2 = { 2 , 3 , 4 } |
并集
1
2
|
print ( '并集:' ,s1.union(s2)) print ( '并集:' ,s1|s2) |
交集
1
2
|
print ( '交集:' ,s1.intersection(s2)) print ( '交集:' ,s1&s2) |
差集
1
2
|
print ( '差集:' ,s1.difference(s2)) #s1-(s1&s2) print ( '差集:' ,s2.difference(s1)) #s2-(s1&s2) |
对等差分:并集-交集
1
2
|
print ( '对等差分:' ,s2.symmetric_difference(s1)) print ( '对等差分:' ,s1^s2) |
集合关系的判断
1
2
3
4
5
6
7
8
9
10
11
|
s3 = { 1 , 2 } s4 = { 1 , 2 , 3 } #s3是否为s4的超集 #超集:如果s3中的每一个元素都在集合s4中,且s4中可能包含s3中没有的元素, #那么s4就是s3的一个超集 print (s3.issuperset(s4)) print (s4.issuperset(s3)) #s3是否为s4的子集 print (s3.issubset(s4)) #两个集和是不是 不相交 print (s3.isdisjoint(s4)) |
4.练习
明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性
他先用计算机生成了n个1~1000之间的随机整数(n<=1000),n是用户输入>的,对于
其中重复的数字,只保留一个,把其余相同的数字去掉,不同的数对应着
不同的学生的学号,然后再把这些
数从小到大排序,按照排好的顺序去找同学做调查,请你协助明明完成“>去重”与排序工作
1
2
3
4
5
|
s = set ([]) for i in range ( int ( input ( 'n:' ))): s.add(random.randint( 1 , 1000 )) print (s) print ( sorted (s)) |
ok~
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对服务器之家的支持。如果你想了解更多相关内容请查看下面相关链接
原文链接:https://blog.csdn.net/weixin_40543283/article/details/86666271