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