集合主要知识集锦

集合:

集合定义:可以包含多个元素,用逗号分割。

集合的元素遵循三个原则:

         1.每个元素必须是不可变类型

          2.没有重复的元素

    3.它是无序的

举例: 

s={1,2,2,'eaaa',(1,2,3)}
print(s,type(s))
{1, 2, 'eaaa', (1, 2, 3)} <class 'set'>
View Code

显示出来的结果具有去重性,

优先掌握:

1.       in      not in

pythons={'alex','egon','yuanhao','wupeiqi','gangdan','biubiu'}
print('egon'  in pythons)
True
View Code

2.并集

pythons={'alex','egon','yuanhao','wupeiqi','gangdan','biubiu'}
linuxs={'wupeiqi','oldboy','gangdan'}
s=pythons | linuxs
print(s)
print(pythons.union(linuxs))
{'yuanhao', 'wupeiqi', 'biubiu', 'egon', 'oldboy', 'gangdan', 'alex'}
{'yuanhao', 'wupeiqi', 'biubiu', 'egon', 'oldboy', 'gangdan', 'alex'}
View Code

2.交集

pythons={'alex','egon','yuanhao','wupeiqi','gangdan','biubiu'}
linuxs={'wupeiqi','oldboy','gangdan'}
s=pythons & linuxs
print(s)
print(pythons.intersection(linuxs))
print(linuxs.intersection(pythons))
{'wupeiqi', 'gangdan'}
{'wupeiqi', 'gangdan'}
{'wupeiqi', 'gangdan'}
View Code

3差集.

就是说只报名python,没有报名linux的学生

pythons={'alex','egon','yuanhao','wupeiqi','gangdan','biubiu'}
linuxs={'wupeiqi','oldboy','gangdan'}
print(pythons - linuxs)
print(pythons.difference(linuxs))


print(linuxs.difference(pythons))
print(linuxs - pythons)
{'alex', 'egon', 'yuanhao', 'biubiu'}
{'alex', 'egon', 'yuanhao', 'biubiu'}
{'oldboy'}
{'oldboy'}
View Code

4.对称差集

pythons={'alex','egon','yuanhao','wupeiqi','gangdan','biubiu'}
linuxs={'wupeiqi','oldboy','gangdan'}
print(pythons ^ linuxs)

print(pythons.symmetric_difference(linuxs))
print(linuxs.symmetric_difference(pythons))
{'alex', 'egon', 'biubiu', 'oldboy', 'yuanhao'}
{'alex', 'egon', 'biubiu', 'oldboy', 'yuanhao'}
{'biubiu', 'yuanhao', 'alex', 'egon', 'oldboy'}
View Code

5.子集,父集

set1={1,2,3,4,5}
set2={1,2,3,4}
print(set1 >= set2)
print(set1.issuperset(set2))
print(set2 <= set1)
print(set2.issubset(set1))
True
True
True
True
View Code

掌握部分

1、update()

描述:扩展集合

参数:要添加的集合

返回值:None(原集合会被修改)

举例

s1 = {'william','lisa','knight','pudding'}
s2 = {'sky'}
s3 = s1.update(s2)  # 扩展集合s1
print(type(s3),s3)  # 查看返回值
print(type(s1),s1)  # 打印扩展后的集合s1
<class 'NoneType'> None
<class 'set'> {'knight', 'sky', 'pudding', 'lisa', 'william'}
View Code

2、copy()

描述:复制集合

参数:

返回值:返回一个和原集合一样的新的集合

1 s1 = {'william','lisa','knight','pudding'}
2 s2 = s1.copy()  # 对集合s1进行复制
3 print(type(s1),s1)
4 print(type(s2),s2)
<class 'set'> {'knight', 'pudding', 'william', 'lisa'}
<class 'set'> {'knight', 'pudding', 'william', 'lisa'}
View Code

3、pop()

描述:随机删除集合中的一个元素

参数:

返回值:返回被删除的元素

1 s1 = {'william','lisa','knight','pudding'}
2 s2 = s1.pop()    # 随机删除集合中的一个元素
3 print(type(s1),s1) 
4 print(type(s2),s2)
<class 'set'> {'lisa', 'knight', 'william'}
<class 'str'> pudding
View Code

4、clear()

描述:清空字典

参数:

返回值:None(原集合会被修改)

1 s1 = {'william','lisa','knight','pudding'}
2 s2 = s1.clear()  # 清空集合
3 print(type(s1),s1)
4 print(type(s2),s2)
<class 'set'> set()
<class 'NoneType'> None
View Code

5、remove()

描述:删除集合中指定的元素

参数:element  元素

返回值:None(原集合会被修改)

 

s1 = {'william','lisa','knight','pudding'}
s2 = s1.remove('lisa')
print(type(s1),s1) 
print(type(s2),s2)  # 返回值为空

6、add()

描述:为集合增加元素

参数:element  元素

返回值:None(原集合会被修改)

1 s1 = {'william','lisa','knight','pudding'}
2 s2 = s1.add('sky')
3 print(type(s1),s1)
4 print(type(s2),s2)  # 返回值为空
<class 'set'> {'pudding', 'lisa', 'william', 'knight', 'sky'}
<class 'NoneType'> None
View Code

7、discard()

描述:删除集合中指定的元素

参数:element  元素

返回值:None(原集合会被修改)

1 s1 = {'william','lisa','knight','pudding'}
2 s2 = s1.discard('william')
3 print(type(s2),s2)   
4 print(type(s1),s1) 
<class 'NoneType'> None
<class 'set'> {'lisa', 'knight', 'pudding'}
View Code

7、difference()

 

描述:差集运算,原集合不更新

参数:set  要对比的集合

返回值:得到一个差集

 

s1 = {'william','lisa','knight','pudding'}
s2 = {'sky','william','hello','knight'}
s3 = s1.difference(s2)
print(type(s3),s3)  # 得到一个差集。
print(type(s1),s1)  # 原集合不更新
 
<class 'NoneType'> None
<class 'set'> {'pudding', 'lisa'}
View Code
 
<class 'set'> {'lisa', 'pudding'}
<class 'set'> {'pudding', 'lisa', 'knight', 'william'}
View Code

8、difference_update

描述:差集运算,原集合更新

参数:set  要对比的集合

返回值:None(原集合会被修改)

 

s1 = {'william','lisa','knight','pudding'}
s2 = {'sky','william','hello','knight'}
s3 = s1.difference_update(s2)
print(type(s3),s3)  # 返回None
print(type(s1),s1)  # 原集被更新
 

python3集合方法统计

 

1、update()

  • 官方说明:
View Code

描述:扩展集合

参数:要添加的集合

返回值:None(原集合会被修改)

  • 示例:
1
2
3
4
5
s1 = {'william','lisa','knight','pudding'}
s2 = {'sky'}
s3 = s1.update(s2)  # 扩展集合s1
print(type(s3),s3)  # 查看返回值
print(type(s1),s1)  # 打印扩展后的集合s1

  输出结果:

<class 'NoneType'> None
<class 'set'> {'knight', 'sky', 'pudding', 'lisa', 'william'}

 

2、copy()

  • 官方说明:
View Code

描述:复制集合

参数:

返回值:返回一个和原集合一样的新的集合

  • 示例:
1
2
3
4
s1 = {'william','lisa','knight','pudding'}
s2 = s1.copy()  # 对集合s1进行复制
print(type(s1),s1)
print(type(s2),s2)

  输出结果:

View Code

 

3、pop()

  • 官方说明:
View Code

描述:随机删除集合中的一个元素

参数:

返回值:返回被删除的元素

  • 示例:
1
2
3
4
s1 = {'william','lisa','knight','pudding'}
s2 = s1.pop()    # 随机删除集合中的一个元素
print(type(s1),s1) 
print(type(s2),s2)

  输出结果:

View Code

 

4、clear()

  • 官方说明:
View Code

描述:清空字典

参数:

返回值:None(原集合会被修改)

示例:

1
2
3
4
s1 = {'william','lisa','knight','pudding'}
s2 = s1.clear()  # 清空集合
print(type(s1),s1)
print(type(s2),s2)

  输出结果:

View Code

 

5、remove()

  • 官方说明:
View Code

描述:删除集合中指定的元素

参数:element  元素

返回值:None(原集合会被修改)

  • 示例:
1
2
3
4
s1 = {'william','lisa','knight','pudding'}
s2 = s1.remove('lisa')
print(type(s1),s1) 
print(type(s2),s2)  # 返回值为空

  输出结果:

View Code

 

6、add()

  • 官方说明:
View Code

描述:为集合增加元素

参数:element  元素

返回值:None(原集合会被修改)

  • 示例:
1
2
3
4
s1 = {'william','lisa','knight','pudding'}
s2 = s1.add('sky')
print(type(s1),s1)
print(type(s2),s2)  # 返回值为空

  输出结果:

View Code

 

7、difference()

  • 官方说明:
View Code

描述:差集运算,原集合不更新

参数:set  要对比的集合

返回值:得到一个差集

  • 示例:
1
2
3
4
5
s1 = {'william','lisa','knight','pudding'}
s2 = {'sky','william','hello','knight'}
s3 = s1.difference(s2)
print(type(s3),s3)  # 得到一个差集。
print(type(s1),s1)  # 原集合不更新

  输出结果:

View Code

 

8、difference_update

  • 官方说明:
View Code

描述:差集运算,原集合更新

参数:set  要对比的集合

返回值:None(原集合会被修改)

  • 示例:
1
2
3
4
5
s1 = {'william','lisa','knight','pudding'}
s2 = {'sky','william','hello','knight'}
s3 = s1.difference_update(s2)
print(type(s3),s3)  # 返回None
print(type(s1),s1)  # 原集被更新

  输出结果:

View Code

 

9、discard()

  • 官方说明:
View Code

描述:删除集合中指定的元素

参数:element  元素

返回值:None(原集合会被修改)

  • 示例:
1
2
3
4
s1 = {'william','lisa','knight','pudding'}
s2 = s1.discard('william')
print(type(s2),s2)   
print(type(s1),s1) 

  输出结果:

View Code

 

10、intersection()

  • 官方说明:
View Code

描述:交集运算,原集合不更新

参数:set  要对比的集合

返回值:得到一个交集

  • 示例:
1
2
3
4
5
s1 = {'william','lisa','knight','pudding'}
s2 = {'william','xxxx'}
s3 = s1.intersection(s2)
print(type(s3),s3)  # 得到一个交集
print(type(s1),s1)  # 原集合不更新

  输出结果:

View Code

 

11、intersection_update()

  • 官方说明:
View Code

描述:交集运算,原集合更新

参数:set  要对比的集合

返回值:None(原集合会被修改)

  • 示例:
1
2
3
4
5
s1 = {'william','lisa','knight','pudding'}
s2 = {'william','xxxx'}
s3 = s1.intersection_update(s2)
print(type(s3),s3)  # 返回None
print(type(s1),s1)  # 原集合更新

  输出集合:

View Code

 

12、isdisjoint()

  • 官方说明:
View Code

描述:判断是否有交集,如果有交集则返回False,没有返回True

参数:set  要对比的集合

返回值:返回一个布尔值

  • 示例:
1
2
3
4
5
6
7
8
9
s1 = {'william','lisa','knight','pudding'}
s2 = {'xxxx','lisa'}
s3 = s1.isdisjoint(s2)   # 有交集则返回False
print(type(s3),s3)
#--------------------------------------------
s4 = {'william','lisa','knight','pudding'}
s5 = {'xxxx','yyyyy','kkkkkk','uuuuuu'}
s6 = s4.isdisjoint(s5)   # 没有交集则返回True
print(type(s6),s6)

  输出结果:

View Code

 

13、issubset()

  • 官方说明:
View Code

描述:判断原集合是否是要对比的集合的子集,如果是则返回True,否则返回False

参数:set  要对比的集合

返回值:得到一个布尔值

  • 示例:
1
2
3
4
5
6
7
8
9
s1 = {'william','pudding'}
s2 = {'william','lisa','knight','pudding'}
s3 = s1.issubset(s2)    # s1是否是s2的子集,所以返回True
print(type(s3),s3)
#--------------------------------------
s4 = {'william','xxxxx'}
s5 = {'william','lisa','knight','pudding'}
s6 = s4.issubset(s5)    # s4不是s5的子集,所以返回False
print(type(s6),s6)

  输出结果:

View Code

 

14、issuperset()

  • 官方说明:
View Code

描述:判断原集合是否是要对比的集合的超(父)集,如果是则返回True,否则返回False

参数:set  要对比的集合

返回值:得到一个布尔值

  • 示例:
1
2
3
4
5
6
7
8
9
s1 = {'william','lisa','knight','pudding'}
s2 = {'william','pudding'}
s3 = s1.issuperset(s2)    # s1是s2的超(父)集,所以返回True
print(type(s3),s3)
#--------------------------------------
s4 = {'william','xxxxx'}
s5 = {'william','lisa','nnnnn','xxxx'}
s6 = s4.issuperset(s5)    # s4不是s5的超(父)集,所以返回False
print(type(s6),s6)

  输出结果:

View Code

 

15、symmetric_difference()

  • 官方说明:
View Code

描述:对称差集运算,原集合不更新

参数:set  要对比的集合

返回值:返回一个对称差集

  • 示例:
1
2
3
4
5
s1 = {'william','lisa','knight','pudding'}
s2 = {'william','pudding','xxxxxx'}
s3 = s1.symmetric_difference(s2)
print(type(s3),s3)   # 得到一个对称差集
print(type(s1),s1)   # 对称差集运算,原集合不更新

  输出结果:

View Code

 

16、symmetric_difference_update()

  • 官方说明:
View Code

描述:对称差集运算,原集合更新

参数:set  要对比的集合

返回值:None(原集合会被修改)

  • 示例:
1
2
3
4
5
s1 = {'william','lisa','knight','pudding'}
s2 = {'william','pudding','xxxxxx'}
s3 = s1.symmetric_difference_update(s2)
print(type(s3),s3)   # 返回None
print(type(s1),s1)   # 对称差集运算,原集合更新

  输出结果:

View Code

 

17、union()

  • 官方说明:
View Code

描述:并集运算,原集合不更新

参数:set  要对比的集合

返回值:得到一个新的集合,两个集合中都有的元素都合并成一个。

  • 示例:
1
2
3
4
5
s1 = {'william','lisa','knight','pudding'}
s2 = {'william','pudding','xxxxxx'}
s3 = s1.union(s2)
print(type(s3),s3)   # 返回得到一个新的集合,两个集合中都有的元素都合并成一个。
print(type(s1),s1)   # 并集运算,原集合不更新

  输出结果:

View Code

 

洋洋人生如戏一场,芸芸众生各属一角。此戏说长便长,论时百年;说长便短,稍纵即逝。生命沧海一粟,在万物中脆弱瞬间即逝为最,随风而来,随风为土,虽说百年,亦不过宇宙间流星划过夜空,一闪而过,无迹无痕,虽曾有闪烁,但即刻消失的无影无踪。无论此戏是悲是喜。 人生轻松无极限,生活快乐遂心愿,活的好过的开心,心态代表一个人的精神状态,只要有良好的心态,你才能每天保持饱满的心情。心态好,运气就好。精神打起来,好运自然来。记住做任何事情一定要有积极的心态,一旦失去他,就跳出去,要学会调整心态, 有良好的心态工作。 人生过的是心情,生活活的是心态,人生随其然,生活何其烦,累了就睡觉,醒了就微笑,走过一些路,才知道辛苦;登过一些山,才知道艰难;趟过一些河,才知道跋涉;跨过一些坎,才知道超越;经过一些事,才知道经验;阅过一些人,才知道历练;读过一些书,才知道财富。
原文地址:https://www.cnblogs.com/liuchengdong/p/7218519.html