它有可变集结set()和不可变集合frozenset()三种,它有可变集合set()和不可变集结frozenset()三种

集合

集合

壹.  凑合的概念

1.  会合的概念

  在Python中, 会面是着力数据类型的一种会集类型,它有可变会集set()和不可变集结frozenset()三种。Python中的集合类似列表,但各种成分都无法不时独一无2的,且是冬日的。

  在Python中, 集聚是骨干数据类型的一种集合类型,它有可变集结set()和不可变集结frozenset()三种。Python中的群集类似列表,但各类成分都必须时独一无贰的,且是冬季的。

  群集set和集结frozenset的差距如下:

  集结set和会集frozenset的区分如下:

  集结set是可变的,有add(),remove()等措施。由于集结set是可变的,所以它不存在哈希值。基本成效包括涉及测试和排除重复成分。会集对象还帮助union(联合)、
intersection(交集)、 difference(差集)和sysmmetric
difference(对称差集)等数学生运动算。

  会集set是可变的,有add(),remove()等艺术。由于集结set是可变的,所以它不存在哈希值。基本作用包含涉及测试和化解重复成分。集合对象还帮忙union(联合)、
intersection(交集)、 difference(差集)和sysmmetric
difference(对称差集)等数学生运动算。

  集结set协助 N in set, len(set),和 for N in
set。作为3个冬天的集纳,集结set不记录成分地点依旧插入点。由此,会集set不帮衬indexing, 或别的类连串的操作。

  集结set帮助 N in set, len(set),和 for N in
set。作为八个冬日的成团,集合set不记录成分地点依旧插入点。因而,集合set不辅助indexing, 或其余类体系的操作。

  集合frozenset()是不可变的,存在哈希值,优点是它能够看作字典的key,也足以看做别的集结的因素。缺点是只要创造便无法改换,未有add(),remove()方法。

  会集frozenset()是不可变的,存在哈希值,优点是它可以用作字典的key,也能够视作别的集结的要素。缺点是倘使创造便不能够改造,未有add(),remove()方法。

  因而,Python中会合的作用重大是:去重,把叁个列表产生集结,就自行去重;关系测试,测试两组数据里面包车型大巴混合、差集、并集等涉及。

  因而,Python中集合的法力至关心珍视假若:去重,把3个列表形成会集,就机关去重;关系测试,测试两组数据里面包车型大巴混合、差集、并集等关系。

 

 

2.  凑合的操作

2.  汇聚的操作

  在Python中,集合set的常用操作包罗:创设集合set、集合set增添、集结set删除、会集的搅动、会集的并集、集合的差集等。

  在Python中,集结set的常用操作包括:成立集结set、集结set扩张、群集set删除、集结的掺和、集合的并集、集合的差集等。

 

 

二.一 集合的成立

二.一 集合的创设

  在Python中,集合的创造能够选用集结的工厂函数set()和frozenset(),可是,set()创设的集聚时可变的,frozenset()成立的集合时不可变的,其语法格式分别如下:

  在Python中,集合的成立能够行使会集的厂子函数set()和frozenset(),不过,set()创制的聚合时可变的,frozenset()创立的会集时不可变的,其语法格式分别如下:

  集合名 = set(集合值)

  集合名 = set(集合值)

       集合名 = frozenset(集合值)  

       集合名 = frozenset(集合值)  

  

  

  (一)创制空集结

  (1)创设空集结

  在Python中,当不点名会集的值时,使用工厂函数set()和frozenset()就可以创制1个空会集。

  在Python中,当不点名集合的值时,使用工厂函数set()和frozenset()就可以制造贰个空集合。

  举个例子,创制空集结。  

  例如,成立空会集。  

  代码:

  代码:

1 a =set()
2 b = frozenset()
3 print(a)
4 print(b)
1 a =set()
2 b = frozenset()
3 print(a)
4 print(b)

  运营结果:

  运行结果:

1 set()
2 frozenset()
1 set()
2 frozenset()

 

 

  (二)用set()方法创造集结  

  (2)用set()方法创造会集  

  例如,用set()方法创设多少个0到十里边的奇数的集合,并打字与印刷出来。

  举个例子,用set()方法成立2个0到十期间的奇数的集纳,并打字与印刷出来。

  代码:

  代码:

1 number_odd = []
2 for number in range(1,11,2):
3     number_odd.append(number)
4 number_opp_set =set(number_odd)
5 print(number_opp_set)
1 number_odd = []
2 for number in range(1,11,2):
3     number_odd.append(number)
4 number_opp_set =set(number_odd)
5 print(number_opp_set)

  说明:

  说明:

  第三行,创设贰个空驶列车表。

  第三行,创立多少个空驶列车表。

  第2~三行,用函数range()循环生成0到第10中学间的奇数,然后扩张到空驶列车表中。

  第2~3行,用函数range()循环生成0到拾里面包车型客车奇数,然后扩展到空驶列车表中。

  第陆行,将列表中的值传给方法set(),生成三个集合。

  第4行,将列表中的值传给方法set(),生成2个会师。

 

 

  运行结果:

  运转结果:

1 {1, 3, 5, 7, 9}
1 {1, 3, 5, 7, 9}

  以上的代码可以通过列表解析的措施优化为:

  以上的代码能够通过列表解析的方法优化为:

  代码1:

  代码1:

1 number_opp_set =set(number for number in range(1,11,2))
2 print(number_opp_set)
1 number_opp_set =set(number for number in range(1,11,2))
2 print(number_opp_set)

  说明:

  说明:

  因为Python是解释性语言,代码越少,解释费用的时光也少。

  因为Python是解释性语言,代码越少,解释开销的岁月也少。

 

 

  运营结果一:

  运维结果一:

1 {1, 3, 5, 7, 9} 
1 {1, 3, 5, 7, 9} 

 

 

 (三)用frozenset()方法创立集结  

 (3)用frozenset()方法成立会集  

  举例,用frozenset()方法创立三个0到拾时期的奇数的集结,并打印出来。

  举例,用frozenset()方法成立二个0到10时期的奇数的聚众,并打印出来。

  代码:

  代码:

1 number_opp_set_0 =frozenset(number for number in range(1,11,2))
2 print(number_opp_set_0)
1 number_opp_set_0 =frozenset(number for number in range(1,11,2))
2 print(number_opp_set_0)

 

 

  运维结果:

  运营结果:

1 frozenset({1, 3, 5, 7, 9})
1 frozenset({1, 3, 5, 7, 9})

 

 

二.二  集结的充实

贰.二  会集的扩展

  在python中,集结的增添有三种常用方法:add()方法和update()方法。

  在python中,集结的加码有二种常用方法:add()方法和update()方法。

  (1) add()方法

  (1) add()方法

  集结的add()方法是把要传播的因素做为一个整机扩展到聚聚焦,即落到实处单成分扩展。

  会集的add()方法是把要传播的因素做为二个完好扩大到集结中,即落到实处单成分增添。

  举个例子,定义一个0到10的奇数的集聚,然后再用add()方法往里面增添三个偶数二和18,然后再打字与印刷出来。

  比方,定义多个0到拾的奇数的集结,然后再用add()方法往里面扩大1个偶数二和1八,然后再打字与印刷出来。

  代码:

  代码:

1 number_opp_set =set(number for number in range(1,11,2))
2 print(number_opp_set)
3 number_opp_set.add(2)
4 number_opp_set.add(18)
5 print(number_opp_set)
1 number_opp_set =set(number for number in range(1,11,2))
2 print(number_opp_set)
3 number_opp_set.add(2)
4 number_opp_set.add(18)
5 print(number_opp_set)

  说明:

  说明:

  第壹、4行,都是时选取add()方法分别向聚集中加进偶数2和1捌。

  第二、4行,都以时采用add()方法分别向聚聚焦加进偶数2和1八。

  

  

  运营结果:

  运营结果:

1 {1, 3, 5, 7, 9}
2 {1, 2, 3, 5, 7, 9, 18}
1 {1, 3, 5, 7, 9}
2 {1, 2, 3, 5, 7, 9, 18}

 

 

  (2)update()方法

  (2)update()方法

  集结update()方法是把要传播的成分拆分,做为单个个体扩展到集结中,即多成分扩张。

  集合update()方法是把要传播的因素拆分,做为单个个体扩展到聚聚焦,即多元素扩展。

  举个例子,定义三个0到拾的奇数的汇集,然后再用update()方法往里面扩充1个偶数2和1八,然后再打印出来。

  举个例子,定义三个0到十的奇数的集合,然后再用update()方法往里面扩充1个偶数2和18,然后再打字与印刷出来。

  代码:

  代码:

1 number_opp_set =set(number for number in range(1,11,2))
2 print(number_opp_set)
3 number_opp_set.update('2')
4 number_opp_set.update('18')
5 print(number_opp_set)
1 number_opp_set =set(number for number in range(1,11,2))
2 print(number_opp_set)
3 number_opp_set.update('2')
4 number_opp_set.update('18')
5 print(number_opp_set)

  说明:

  说明:

  第三、4行,分别调用update()方法分别向公司中扩大偶数二和1捌.

  第叁、四行,分别调用update()方法分别向公司中扩展偶数二和1八.

 

 

  运维结果:

  运转结果:

1 {1, 3, 5, 7, 9}
2 {1, 3, 5, 7, 9, '2', '8', '1'}
1 {1, 3, 5, 7, 9}
2 {1, 3, 5, 7, 9, '2', '8', '1'}

  从上述的运行结果中可见,偶数18倍拆分为壹和7分级大增到集结中,并且增添的值都被单引号引起来,这象征扩张的是字符窜。那并不是大家必要的结果。

  从以上的运作结果中可知,偶数1八倍拆分为1和8各自大增到聚聚集,并且扩大的值都被单引号引起来,那象征扩展的是字符窜。那并不是大家须要的结果。

  在Python中,若是调用update()方法向聚聚焦扩充八个或四个字符组成的值时,该值要求采纳中括号恐怕花括号括起来,即意味着为字典或列表的方式。

  在Python中,假设调用update()方法向聚集中扩张多个或八个字符组成的值时,该值要求利用中括号可能花括号括起来,即意味着为字典或列表的款式。

  比方,定义三个0到10的奇数的会晤,然后再用update()方法往里面扩展3个偶数2和18,即奇数1玖,然后再打字与印刷出来。

  例如,定义二个0到十的奇数的集结,然后再用update()方法往里面扩充三个偶数2和1八,即奇数1九,然后再打字与印刷出来。

  代码:

  代码:

1 number_opp_set =set(number for number in range(1,11,2))
2 print(number_opp_set)
3 number_opp_set.update('2')
4 number_opp_set.update(['18'])
5 number_opp_set.update({'19'})
6 print(number_opp_set)
1 number_opp_set =set(number for number in range(1,11,2))
2 print(number_opp_set)
3 number_opp_set.update('2')
4 number_opp_set.update(['18'])
5 number_opp_set.update({'19'})
6 print(number_opp_set)

 

 

  运维结果:

  运转结果:

1 {1, 3, 5, 7, 9}
2 {1, 3, 5, 7, 9, '18', '2', '19'}
1 {1, 3, 5, 7, 9}
2 {1, 3, 5, 7, 9, '18', '2', '19'}

 

 

二.3 集结的去除

2.3 集结的删减

  在Python中,会集的删减分为三种,壹种是删除集结中的值;一种是剔除全体会集。

  在Python中,群集的删除分为二种,1种是剔除集合中的值;一种是去除全数集结。

  (壹)删除全数会集

  (一)删除全体集结

  在Python中,当我们供给删除全体集结中时,可使用del 语句直接删除。

  在Python中,当大家必要删除全体集结中时,可利用del 语句直接删除。

  举例,将壹.2.2 中成立的集合删除。

  举个例子,将1.二.二 中创立的集纳删除。

  代码:

  代码:

1 number_opp_set =set(number for number in range(1,11,2))
2 print("集合删除前:",number_opp_set)
3 del  number_opp_set
4 print("集合删除后:",number_opp_set)
1 number_opp_set =set(number for number in range(1,11,2))
2 print("集合删除前:",number_opp_set)
3 del  number_opp_set
4 print("集合删除后:",number_opp_set)

  说明:

  说明:

  第3行,使用del语句删除集合number_opp_set。

  第二行,使用del语句删除集结number_opp_set。

 

 

  运维结果:

  运营结果:

1 集合删除前: {1, 3, 5, 7, 9}
2 Traceback (most recent call last):
3   File "F:/PyProject/s14/day2/test_set.py", line 6, in <module>
4     print("集合删除后:",number_opp_set)
5 NameError: name 'number_opp_set' is not defined
1 集合删除前: {1, 3, 5, 7, 9}
2 Traceback (most recent call last):
3   File "F:/PyProject/s14/day2/test_set.py", line 6, in <module>
4     print("集合删除后:",number_opp_set)
5 NameError: name 'number_opp_set' is not defined

  从上述的周转结果可见,使用del语句删除集结时1种长久性的,删除后就聚拢就不能够再被使用。

  从以上的运作结果能够,使用del语句删除集合时1种长久性的,删除后就集合就无法再被应用。

 

 

  (贰)删除会集中的值

  (二)删除集结中的值

  在Python中,当大家须求删除集合中的值时,可采纳remove()方法、discard()方法及pop()方法。

  在Python中,当大家须要删除集结中的值时,可使用remove()方法、discard()方法及pop()方法。

  注意:remove()方法和discard()方法都能去除内定的聚焦的值,但只要钦定的值在聚集中找不到,则会唤醒错误,而discard()方法不会;pop()方法是轻松删除集合中的大肆三个值。

  注意:remove()方法和discard()方法都能去除钦点的集纳的值,但假诺内定的值在集结中找不到,则会提醒错误,而discard()方法不会;pop()方法是任性删除群集中的大4一个值。

  举个例子,将一.贰.二 中加进到会集中的值删除。

  比方,将1.②.2 中追加到集合中的值删除。

  代码:

  代码:

 1 number_opp_set =set(number for number in range(1,11,2))
 2 print(number_opp_set)
 3 number_opp_set.update('2')
 4 number_opp_set.update(['18'])
 5 number_opp_set.update({'19'})
 6 print(number_opp_set)
 7 number_opp_set.remove('2')
 8 number_opp_set.discard('18')
 9 number_opp_set.pop()
10 print(number_opp_set)
 1 number_opp_set =set(number for number in range(1,11,2))
 2 print(number_opp_set)
 3 number_opp_set.update('2')
 4 number_opp_set.update(['18'])
 5 number_opp_set.update({'19'})
 6 print(number_opp_set)
 7 number_opp_set.remove('2')
 8 number_opp_set.discard('18')
 9 number_opp_set.pop()
10 print(number_opp_set)

  说明:

  说明:

  第八行,调用remove()方法从会集中删去前边扩展到集合中的值二,并且remove()中的参数必须用引号引起来,不然Python解释器不可能解析,会唤起错误。

  第八行,调用remove()方法从集结中除去前边增添到聚聚集的值二,并且remove()中的参数必须用引号引起来,不然Python解释器不能够解析,会提示错误。

  第7行,调用discard()方法从会集中除去后边扩展到聚集中的值18,方法discard()中的参数如果全是数字,不用引号引起来也不会报错,但会集中的值1八不会被剔除,不用引号引起来,Python解释器解析不到该值。

  第玖行,调用discard()方法从会集中除去前边扩充到集合中的值1八,方法discard()中的参数借使全是数字,不用引号引起来也不会报错,但集结中的值1八不会被剔除,不用引号引起来,Python解释器解析不到该值。

 

 

  运营结果:

  运转结果:

1 {1, 3, 5, 7, 9}
2 {1, 3, 5, '19', 7, 9, '2', '18'}
3 {3, 5, 7, 9, '19'}
1 {1, 3, 5, 7, 9}
2 {1, 3, 5, '19', 7, 9, '2', '18'}
3 {3, 5, 7, 9, '19'}

  从以上的周转结果可见,由于pop()方法是轻松删除群集中的大肆多少个值,所以将原集结中的值壹删除了,但增添的值1玖照旧存在集合中。

  从以上的运营结果可见,由于pop()方法是专断删除集合中的任意一个值,所以将原会集中的值一删除了,但扩充的值1玖依旧存在集结中。

 

 

二.三 会集的走访

二.叁 群集的拜会

  在Python中,集合的访问重要有二种,壹种是访问整个集结,1种的集纳的遍历。

  在Python中,群集的拜会首要有二种,壹种是造访整个群集,壹种的聚众的遍历。

  (一)访问整个集结

  (1)访问整个群集

  在Python中,访问整个集合,能够一向接纳。

  在Python中,访问整个集结,可以一贯使用。

  比如,成立1个一到十以内的数字构成的偶数的联谊,并走访整个集结。

  举例,创制二个一到十里头的数字组成的偶数的会见,并走访整个集合。

  代码:

  代码:

1 number_even_set =set(number for number in range(2,11,2))
2 print(number_even_set)
1 number_even_set =set(number for number in range(2,11,2))
2 print(number_even_set)

  说明:

  说明:

  第3行,使用range()函数和for循环,从贰方始,依次遍历到十,且幅度为2,再用set()方法,将兼具遍历进度中级知识分子足步长为二的数字创造为二个会合。

  第三行,使用range()函数和for循环,从2从头,依次遍历到十,且上涨的幅度为2,再用set()方法,将兼具遍历进程中级知识分子足步长为二的数字成立为2个汇合。

  第一行,直接用print打字与印刷整个集结。

  第一行,直接用print打字与印刷整个会集。

 

 

  运转结果:

  运转结果:

1 {2, 4, 6, 8, 10}
1 {2, 4, 6, 8, 10}

 

 

  (二)访问集合中的每一种值

  (二)访问集结中的各样值

  在Python中,大家得以使用for循环来遍历访问集结中的每种值。

  在Python中,大家得以运用for循环来遍历访问集合中的每种值。

  举例,创立一个①到第10中学间的数字组合的偶数的集结,并遍历访问集结中的每一个值。

  举个例子,创制二个一到10时期的数字组合的偶数的会集,并遍历访问集结中的每个值。

  代码:

  代码:

1 number_even_set =set(number for number in range(2,11,2))
2 print(number_even_set)
3 for number_evven in number_even_set:
4     print(number_evven)
1 number_even_set =set(number for number in range(2,11,2))
2 print(number_even_set)
3 for number_evven in number_even_set:
4     print(number_evven)

 

 

  运维结果:

  运营结果:

1 {2, 4, 6, 8, 10}
2 2
3 4
4 6
5 8
6 10
1 {2, 4, 6, 8, 10}
2 2
3 4
4 6
5 8
6 10

 

 

三.  聚众的涉及测试

三.  集结的涉嫌测试

  在Python中,集结的关系测试包涵:并集、交集、差集等等。

  在Python中,集合的关联测试包罗:并集、交集、差集等等。

3.1 并集

3.1 并集

  集结中,并集也叫合集,就要2个成团和另一个集中结并为三个群集的经过。求并集使用函数union()可能运算符“|”。

  集结中,并集也叫合集,将在1个汇集和另一个聚集合并为2个聚焦的经过。求并集使用函数union()可能运算符“|”。

  举个例子,成立三个一到10中间的数字组合的偶数的聚众和奇数集结,然后求其并集。

  举例,创制三个一到十之内的数字构成的偶数的汇聚和奇数聚积,然后求其并集。

  代码:

  代码:

 1 number_opp_set =set(number for number in range(1,11,2))
 2 print(number_opp_set)
 3 number_even_set =set(number for number in range(2,11,2))
 4 print(number_even_set)
 5 print("-----第一种方式:用函数union()求并集-----")
 6 number_set = number_opp_set.union(number_even_set)
 7 print(number_set)
 8 print("-----第二种方式:用运算符'|'求并集-----")
 9 _number_set = number_opp_set | number_even_set
10 print(_number_set)
 1 number_opp_set =set(number for number in range(1,11,2))
 2 print(number_opp_set)
 3 number_even_set =set(number for number in range(2,11,2))
 4 print(number_even_set)
 5 print("-----第一种方式:用函数union()求并集-----")
 6 number_set = number_opp_set.union(number_even_set)
 7 print(number_set)
 8 print("-----第二种方式:用运算符'|'求并集-----")
 9 _number_set = number_opp_set | number_even_set
10 print(_number_set)

 

 

 说明:

 说明:

  第6行,用函数union()将集合number_opp_set和集合number_even_set合并后赋值给变量number_set。

  第6行,用函数union()将集合number_opp_set和集合number_even_set合并后赋值给变量number_set。

  第十行,用运算符 ‘|’
将集结number_opp_set和集合number_even_set合并后赋值给变量_number_set。

  第八行,用运算符 ‘|’
将集结number_opp_set和集合number_even_set合并后赋值给变量_number_set。

  

  

  运转结果:

  运维结果:

1 {1, 3, 5, 7, 9}
2 {2, 4, 6, 8, 10}
3 -----第一种方式:用函数union()求并集-----
4 {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
5 -----第二种方式:用运算符'|'求并集-----
6 {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
1 {1, 3, 5, 7, 9}
2 {2, 4, 6, 8, 10}
3 -----第一种方式:用函数union()求并集-----
4 {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
5 -----第二种方式:用运算符'|'求并集-----
6 {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}

  从上述的周转结果能够,求多个集聚的并集能够行使函数union()或运算符
‘|’ ,其结果是如出1辙的。

  从上述的周转结果可见,求几个汇聚的并集能够运用函数union()或运算符
‘|’ ,其结果是同等的。

 

 

3.2 交集

3.2 交集

  交集正是多少个集聚中都局部有个别,用函数intersection()或运算符
‘&’求四个集聚的插花。

  交集正是八个汇集中都一些有个别,用函数intersection()或运算符
‘&’求八个汇集的交集。

  举例,创立二个壹到伍的数字组成的集聚,再次创下制一个0到十的奇数组成的集聚,然后求其交集。

  举例,创设一个1到五的数字组合的集纳,再次创下立三个0到十的奇数组成的集结,然后求其交集。

  代码:

  代码:

 1 number_set_a =set(number for number in range(1,6))
 2 print(number_set_a)
 3 number_opp_set =set(number for number in range(1,11,2))
 4 print(number_opp_set)
 5 print("-----第一种方式:intersection()求交集-----")
 6 number_set = number_set_a.intersection(number_opp_set)
 7 print(number_set)
 8 print("-----第二种方式:用运算符 '&'求交集-----")
 9 _number_set = number_set_a & number_opp_set
10 print(_number_set)
 1 number_set_a =set(number for number in range(1,6))
 2 print(number_set_a)
 3 number_opp_set =set(number for number in range(1,11,2))
 4 print(number_opp_set)
 5 print("-----第一种方式:intersection()求交集-----")
 6 number_set = number_set_a.intersection(number_opp_set)
 7 print(number_set)
 8 print("-----第二种方式:用运算符 '&'求交集-----")
 9 _number_set = number_set_a & number_opp_set
10 print(_number_set)

  说明:

  说明:

  第陆行,使用函数intersection()求集结number_set_a和集合number_opp_set的混合,并赋值给变量number_set。

  第陆行,使用函数intersection()求集合number_set_a和集合number_opp_set的插花,并赋值给变量number_set。

  第玖行,使用运算符 ‘&’
求集结number_set_a和集合number_opp_set的掺和,并赋值给变量_number_set。 

  第七行,使用运算符 ‘&’
求集合number_set_a和集合number_opp_set的掺和,并赋值给变量_number_set。 

  运营结果:

  运维结果:

1 {1, 2, 3, 4, 5}
2 {1, 3, 5, 7, 9}
3 -----第一种方式:intersection()求交集-----
4 {1, 3, 5}
5 -----第二种方式:用运算符 '&'求交集-----
6 {1, 3, 5}
1 {1, 2, 3, 4, 5}
2 {1, 3, 5, 7, 9}
3 -----第一种方式:intersection()求交集-----
4 {1, 3, 5}
5 -----第二种方式:用运算符 '&'求交集-----
6 {1, 3, 5}

  从以上的运营结果可见,通过函数intersection()或运算符 ‘&’
,都得以求八个聚众交集。

  从上述的周转结果可见,通过函数intersection()或运算符 ‘&’
,都足以求四个聚众交集。

 

 

3.3 差集

3.3 差集

  差集正是在八个聚众中,在集结a中有,但集结b中绝非的片段,只怕集结b中有,但集结a中未有的1部分。因而大家可选拔函数difference()或运算符
‘-’ 求差集。

  差集便是在七个聚众中,在集合a中有,但集结b中从未的一些,也许群集b中有,但集结a中尚无的部分。因而大家可选拔函数difference()或运算符
‘-’ 求差集。

  比如,创制三个一到五的数字组成的集结,更创制一个0到10的奇数组成的聚合,然后求其差集。

  举个例子,成立2个一到伍的数字组合的联谊,再次创下造三个0到拾的奇数组成的聚众,然后求其差集。

  代码:

  代码:

 1 number_set_a =set(number for number in range(1,6))
 2 print(number_set_a)
 3 number_opp_set =set(number for number in range(1,11,2))
 4 print(number_opp_set)
 5 print("-----第一种方式:difference()求差集-----")
 6 number_set = number_set_a.difference(number_opp_set)
 7 print(number_set)
 8 _number_set = number_opp_set.difference(number_set_a)
 9 print(_number_set)
10 print("-----第二种方式:用运算符 '-'求差集-----")
11 _number_set_ = number_set_a- number_opp_set
12 print(_number_set_)
13 __number_set__ = number_opp_set - number_set_a
14 print(__number_set__)
 1 number_set_a =set(number for number in range(1,6))
 2 print(number_set_a)
 3 number_opp_set =set(number for number in range(1,11,2))
 4 print(number_opp_set)
 5 print("-----第一种方式:difference()求差集-----")
 6 number_set = number_set_a.difference(number_opp_set)
 7 print(number_set)
 8 _number_set = number_opp_set.difference(number_set_a)
 9 print(_number_set)
10 print("-----第二种方式:用运算符 '-'求差集-----")
11 _number_set_ = number_set_a- number_opp_set
12 print(_number_set_)
13 __number_set__ = number_opp_set - number_set_a
14 print(__number_set__)

  说明:

  说明:

  第陆行,使用函数difference()求集合number_set_a中有,但集合number_opp_set中从不的片段,并赋值给变量number_set。

  第四行,使用函数difference()求集结number_set_a中有,但集合number_opp_set中未有的1对,并赋值给变量number_set。

  第7行,使用函数difference()求会集number_opp_set中有,但集合number_set_a中未有的一部分,并赋值给变量_number_set。

  第拾行,使用函数difference()求会集number_opp_set中有,但集合number_set_a中绝非的局地,并赋值给变量_number_set。

  第2壹行,使用运算符 ‘-‘
求集结number_set_a中有,但集合number_opp_set中从未的1部分,并赋值给变量_number_set_。

  第31行,使用运算符 ‘-‘
求集结number_set_a中有,但集合number_opp_set中没有的局地,并赋值给变量_number_set_。

  第2三行,使用运算符
‘-‘ 求集结number_opp_set中有,但集合number_set_a中从不的局地,并赋值给变量__number_set__。

  第33行,使用运算符
‘-‘ 求集结number_opp_set中有,但集合number_set_a中从不的有个别,并赋值给变量__number_set__。

 

 

  运转结果:

  运转结果:

1 {1, 2, 3, 4, 5}
2 {1, 3, 5, 7, 9}
3 -----第一种方式:difference()求差集-----
4 {2, 4}
5 {9, 7}
6 -----第二种方式:用运算符 '-'求差集-----
7 {2, 4}
8 {9, 7}
1 {1, 2, 3, 4, 5}
2 {1, 3, 5, 7, 9}
3 -----第一种方式:difference()求差集-----
4 {2, 4}
5 {9, 7}
6 -----第二种方式:用运算符 '-'求差集-----
7 {2, 4}
8 {9, 7}

 

 

3.4 子集

3.4 子集

  推断会集a是或不是是集结b的子集,使用函数issubset()或运算符 ‘<=’。

  判定集结a是还是不是是群集b的子集,使用函数issubset()或运算符 ‘<=’。

  举个例子,创设贰个壹到十的数字构成的聚合,更创立1个0到10的奇数组成的会见,然后求其子集。

  举个例子,成立三个1到10的数字构成的联谊,再成立2个0到十的奇数组成的成团,然后求其子集。

  代码:

  代码:

 1 number_set_a =set(number for number in range(1,11))
 2 print(number_set_a)
 3 number_opp_set =set(number for number in range(1,11,2))
 4 print(number_opp_set)
 5 print("-----第一种方式:issubset()求子集-----")
 6 number_set = number_set_a.issubset(number_opp_set)
 7 print(number_set)
 8 _number_set = number_opp_set.issubset(number_set_a)
 9 print(_number_set)
10 print("-----第二种方式:用运算符 '<='求子集-----")
11 _number_set_ = number_set_a <= number_opp_set
12 print(_number_set_)
13 __number_set__ = number_opp_set <= number_set_a
14 print(__number_set__)
 1 number_set_a =set(number for number in range(1,11))
 2 print(number_set_a)
 3 number_opp_set =set(number for number in range(1,11,2))
 4 print(number_opp_set)
 5 print("-----第一种方式:issubset()求子集-----")
 6 number_set = number_set_a.issubset(number_opp_set)
 7 print(number_set)
 8 _number_set = number_opp_set.issubset(number_set_a)
 9 print(_number_set)
10 print("-----第二种方式:用运算符 '<='求子集-----")
11 _number_set_ = number_set_a <= number_opp_set
12 print(_number_set_)
13 __number_set__ = number_opp_set <= number_set_a
14 print(__number_set__)

 

 

 说明:

 说明:

  第6行,用函数issubset()决断集结number_set_a是或不是是集合number_opp_set的子集,决断结果赋值给变量number_set。

  第5行,用函数issubset()判别集结number_set_a是不是是会集number_opp_set的子集,判别结果赋值给变量number_set。

  第八行,用函数issubset()推断集合number_opp_set是还是不是是集结number_set_a的子集,判别结果赋值给变量_number_set。

  第七行,用函数issubset()判定会集number_opp_set是不是是集结number_set_a的子集,推断结果赋值给变量_number_set。

  第三一行,用运算符 ‘<= ‘
判别集合number_set_a是或不是是聚积number_opp_set的子集,推断结果赋值给变量_number_set_。

  第2一行,用运算符 ‘<= ‘
判定集结number_set_a是或不是是集结number_opp_set的子集,判定结果赋值给变量_number_set_。

  第1三行,用运算符 ‘<=
‘ 剖断集结number_opp_set是不是是集结number_set_a的子集,剖断结果赋值给变量__number_set__。

  第三3行,用运算符 ‘<=
‘ 判定集结number_opp_set是还是不是是集结number_set_a的子集,判别结果赋值给变量__number_set__。

 

 

  运维结果:

  运维结果:

1 {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
2 {1, 3, 5, 7, 9}
3 -----第一种方式:issubset()求子集-----
4 False
5 True
6 -----第二种方式:用运算符 '<='求子集-----
7 False
8 True
1 {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
2 {1, 3, 5, 7, 9}
3 -----第一种方式:issubset()求子集-----
4 False
5 True
6 -----第二种方式:用运算符 '<='求子集-----
7 False
8 True

 

 

3.5 父集

3.5 父集

  决断集结a是还是不是是集合b的父集,使用函数issuperset()或运算符 ‘>=’。

  决断集结a是或不是是会集b的父集,使用函数issuperset()或运算符 ‘>=’。

  比方,创设三个1到拾的数字构成的成团,再次创下立一个0到十的奇数组成的集纳,然后求其父集。

  比方,创建二个一到10的数字组成的汇集,更创制1个0到拾的奇数组成的集聚,然后求其父集。

  代码:

  代码:

 1 number_set_a =set(number for number in range(1,11))
 2 print(number_set_a)
 3 number_opp_set =set(number for number in range(1,11,2))
 4 print(number_opp_set)
 5 print("-----第一种方式:issuperset()求父集-----")
 6 number_set = number_set_a.issuperset(number_opp_set)
 7 print(number_set)
 8 _number_set = number_opp_set.issuperset(number_set_a)
 9 print(_number_set)
10 print("-----第二种方式:用运算符 '>='求父集-----")
11 _number_set_ = number_set_a >= number_opp_set
12 print(_number_set_)
13 __number_set__ = number_opp_set >= number_set_a
14 print(__number_set__)
 1 number_set_a =set(number for number in range(1,11))
 2 print(number_set_a)
 3 number_opp_set =set(number for number in range(1,11,2))
 4 print(number_opp_set)
 5 print("-----第一种方式:issuperset()求父集-----")
 6 number_set = number_set_a.issuperset(number_opp_set)
 7 print(number_set)
 8 _number_set = number_opp_set.issuperset(number_set_a)
 9 print(_number_set)
10 print("-----第二种方式:用运算符 '>='求父集-----")
11 _number_set_ = number_set_a >= number_opp_set
12 print(_number_set_)
13 __number_set__ = number_opp_set >= number_set_a
14 print(__number_set__)

    说明:

    说明:

  第4行,用函数issuperset()判别集合number_set_a是还是不是是集结number_opp_set的父集,剖断结果赋值给变量number_set。

  第四行,用函数issuperset()判定群集number_set_a是还是不是是集结number_opp_set的父集,判断结果赋值给变量number_set。

  第10行,用函数issuperset()决断集合number_opp_set是还是不是是集合number_set_a的父集,推断结果赋值给变量_number_set。 

  第八行,用函数issuperset()剖断集结number_opp_set是还是不是是集结number_set_a的父集,推断结果赋值给变量_number_set。 

  第二1行,用运算符 ‘>=’
判定集结number_set_a是或不是是会集number_opp_set的父集,推断结果赋值给变量_number_set_。

  第三一行,用运算符 ‘>=’
判定群集number_set_a是还是不是是集结number_opp_set的父集,推断结果赋值给变量_number_set_。

  第三三行,用运算符
‘>=’ 剖断集结number_opp_set是或不是是集合number_set_a的父集,剖断结果赋值给变量__number_set__。

  第3三行,用运算符
‘>=’ 决断集合number_opp_set是或不是是会集number_set_a的父集,判别结果赋值给变量__number_set__。

  

  

运作结果:

运维结果:

1 {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
2 {1, 3, 5, 7, 9}
3 -----第一种方式:issuperset()求父集-----
4 True
5 False
6 -----第二种方式:用运算符 '>='求父集-----
7 True
8 False
1 {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
2 {1, 3, 5, 7, 9}
3 -----第一种方式:issuperset()求父集-----
4 True
5 False
6 -----第二种方式:用运算符 '>='求父集-----
7 True
8 False

 

 

三.六 对称差集

叁.陆 对称差集

  对称差集便是求四个集聚中的剔除公共的一些的汇集。

  对称差集就是求多少个汇聚中的剔除公共的片段的成团。

  比如,创立1个1到伍的数字构成的集聚,再次创下立3个0到十的奇数组成的聚焦,然后求其对称差集。

  比方,创设一个一到5的数字组成的集结,再次创下设一个0到10的奇数组成的聚合,然后求其对称差集。

  代码:

  代码:

 1 number_set_a =set(number for number in range(1,6))
 2 print(number_set_a)
 3 number_opp_set =set(number for number in range(1,11,2))
 4 print(number_opp_set)
 5 print("-----第一种方式:symmetric_difference()求对称差集-----")
 6 number_set = number_set_a.symmetric_difference(number_opp_set)
 7 print(number_set)
 8 _number_set = number_opp_set.symmetric_difference(number_set_a)
 9 print(_number_set)
10 print("-----第二种方式:用运算符 '^ '求对称差集-----")
11 _number_set_ = number_set_a ^  number_opp_set
12 print(_number_set_)
13 __number_set__ = number_opp_set ^  number_set_a
14 print(__number_set__)
 1 number_set_a =set(number for number in range(1,6))
 2 print(number_set_a)
 3 number_opp_set =set(number for number in range(1,11,2))
 4 print(number_opp_set)
 5 print("-----第一种方式:symmetric_difference()求对称差集-----")
 6 number_set = number_set_a.symmetric_difference(number_opp_set)
 7 print(number_set)
 8 _number_set = number_opp_set.symmetric_difference(number_set_a)
 9 print(_number_set)
10 print("-----第二种方式:用运算符 '^ '求对称差集-----")
11 _number_set_ = number_set_a ^  number_opp_set
12 print(_number_set_)
13 __number_set__ = number_opp_set ^  number_set_a
14 print(__number_set__)

  说明:  

  说明:  

  第四行,使用函数symmetric_difference()求集合number_set_a和集合number_opp_set的对称差集,并赋值给变量number_set。

  第五行,使用函数symmetric_difference()求集合number_set_a和集合number_opp_set的对称差集,并赋值给变量number_set。

  第七行,使用函数symmetric_difference()求集合number_opp_set和集合number_set_a的集合思路和意见差集,并赋值给变量_number_set。

  第八行,使用函数symmetric_difference()求集合number_opp_set和集合number_set_a的扬长避短差集,并赋值给变量_number_set。

  第3一行,使用运算符 ‘^’
求会集number_set_a和集合number_opp_set的断长续短差集,并赋值给变量_number_set_。

  第1壹行,使用运算符 ‘^’
求集结number_set_a和集合number_opp_set的相得益彰差集,并赋值给变量_number_set_。

  第2三行,使用运算符
‘^’ 求会集number_opp_set和集合number_set_a的相反相成差集,并赋值给变量__number_set__。

  第三三行,使用运算符
‘^’ 求群集number_opp_set和集合number_set_a的相得益彰差集,并赋值给变量__number_set__。

  

  

  运转结果:

  运转结果:

1 {1, 2, 3, 4, 5}
2 {1, 3, 5, 7, 9}
3 -----第一种方式:symmetric_difference()求对称差集-----
4 {2, 4, 7, 9}
5 {2, 4, 7, 9}
6 -----第二种方式:用运算符 '^ '求对称差集-----
7 {2, 4, 7, 9}
8 {2, 4, 7, 9}
1 {1, 2, 3, 4, 5}
2 {1, 3, 5, 7, 9}
3 -----第一种方式:symmetric_difference()求对称差集-----
4 {2, 4, 7, 9}
5 {2, 4, 7, 9}
6 -----第二种方式:用运算符 '^ '求对称差集-----
7 {2, 4, 7, 9}
8 {2, 4, 7, 9}

   
从上述的周转结果能够,求三个汇聚的对称差集时,哪个会集写在函数中或左右都行,其结果都一点差异也未有。

   
从上述的周转结果能够,求四个汇聚的博采有益的意见差集时,哪个集合写在函数中或左右都行,其结果都一点差别也没有。

 

 

相关文章