Python基础教程:set集合的教程

Python基础教程:set集合的教程

一、集合类型

集合是一组无序排列的可哈希的值(可哈希的值->不可变),集合成员可以做字典中的键。但集合本身是不可哈希的。

集合是无序没有索引,也没有像字典的key,所以集合不能更改元素。只能增删查(print、for循环)

集合的作用

  • 去重复元素
  • 关系测试:交集、并集、差集、反交集、超集

二、集合的操作

1.集合的创建

#set 的创建set1 = set('abcde')  #def __init__(self, seq=()):  接受一个可迭代对象set2 = {1,2,7,3,8,4,5,6}  #直接赋值print(set1)print(set2)

2.去重

#利用set去重li = [2,4,1,3,4,5,6,7,3,3]set1 = set(li)li = list(set1) print(li)

3.集合的增

3.1添加一个元素方法

'''学习中遇到问题没人解答?小编创建了一个Python学习交流群:531509025寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!'''#添加一个元素使用set.add()set1 = {1,2,7,3,8,4,5,6}set1.add('a') #Add an element to a set.print(set1)  #{1, 2, 3, 4, 5, 6, 7, 8, 'a'}

3.2迭代添加元素.接受一个可迭代对象,字符串、元组、列表、字典

#迭代添加s1 = '中国'set1 = {1,2,7,3,8,4,5,6}set1.update(s1) #接受一个可迭代对象。把每个元素拆开,添加到set中print(set1)

4.集合的删

4.1删除一个元素从set中

#删除一个元素从set中set1 = {1,2,7,3,8,4,5,6,'a'}set1.remove('a') #Remove an element from a setprint(set1)

4.2随机删除元素

#随机删,并返回被删除元素set1 = {1,2,7,3,8,4,5,6,'a'}set2 = set1.pop()  #Remove and return an arbitrary set element.print(set2)print(set1)

5.集合的其他操作

#1.print打印set1 = {1,2,7,3,8,4,5,6,'a'}print(set1) #2.for循环for i in set1:    print(i) #3.in not inprint('a' in set1) #4.len()获取长度print('集合长度:%d'%(len(set1)))

三、关系测试

交集

交集使用 & 或 intersection()

set1 = {1,2,3,4,5,6,7}set2 = {3,4,5,6,7,8,9}set3 = set1 & set2set3 = set1.intersection(set2)print(set3)  #{3, 4, 5, 6, 7}

并集

并集: | 或者 union

 set1 = {1,2,3,4,5,6,7} set2 = {3,4,5,6,7,8,9}  set3 = set1 | set2 set3 = set1.union(set2) print(set3)  #{1, 2, 3, 4, 5, 6, 7, 8, 9}

差集

差集:两者各自特有的部分。使用 - 或者 difference()

'''学习中遇到问题没人解答?小编创建了一个Python学习交流群:531509025寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!'''#差集 : 两者做差,求各自特有的部分;该集合中的元素,只属于某一个集合,不属于另外那个集合set1 = {1,2,3,4,5,6,7}set2 = {3,4,5,6,7,8,9}#两种方式 - 或者 differenceset3 = set1 - set2 #两者做差,求各自特有的部分set4 = set2 - set1 #两者做差,求各自特有的部分set3 = set1.difference(set2)set4 = set2.difference(set1)print(set3)#{1, 2}  #set1特有的部分print(set4)#{8, 9}  #set2 特有的部分

反交集

反交集:^ 或者 symmetric_difference();该集合元素只能属于set1或者set2,不能同时set1又属于set2两个集合。->抛去两个集合相交的部分,把两者剩余的组成一个新集合。

#反交集:抛去他俩相同的部分,再组成一个新集合set1 = {1,2,3,4,5,6,7}set2 = {3,4,5,6,7,8,9}set3 = set1 ^ set2set3 = set1.symmetric_difference(set2)print(set3)  #{1, 2, 8, 9}  1,2是set1特有,8,9是set2特有

子集与超集

#子集与超集 : 检测某个集合是否是其他集合的超集或子集#成立条件:set2必须得包含set1,并且含有set1没有的元素。set1不含有set2中的元素set1 = {1,2,3,4,5,6,7}set2 = {3,4,5,6,7,8,9}set3 = {4,3}print(set2.issuperset(set1))  #False  >=print(set1.issuperset(set2))  #Falseprint(set2.issuperset(set3))  #Trueprint(set3.issubset(set2))    #True  <=  set3是set2的子集
免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部