Python3 [集合]类型 学习笔记

#Python集合学习笔记

一、基本知识:

1、集合(set):是一个 无序的、不重复的 元素序列。

2、集合的创建:使用 { } 或者 set( )函数 创建集合。

(1)创建 空集合:必须使用 set( )函数

(2)创建 空集合,不能使用 { },{ } 是用来创建 空字典的。

3、集合创建实例:

(1)a={v1,v2,v3,...}

(2)b=set(value)

(3)推导式:a={x for x in 'abcdefgabcgfc' if x not in ‘abc’}

4、集合的运算:集合a,集合b

(1)【差集】a - b :返回包含在集合a 中的元素,但在集合b 中没有此元素。

(101)差集的函数表示1:difference() 方法:用于返回集合的差集,即返回的集合元素包含在第一个集合中,但不包含在第二个集合(方法的参数)中。

  例:集合a,集合b,集合z:z=a.difference( b )

(102)差集的函数表示2:difference_update()方法:用于移除两个集合中都存在的元素。

  例:集合a,集合b:a.difference_update( b )

(103)difference()与defference_update()的区别: difference() 方法返回一个移除相同元素的新集合; difference_update() 方法是直接在原来的集合中移除元素,没有返回值。

(2)【并集】a | b :返回包含在集合a 和集合b 中的所有元素。

(201)并集的函数表示:union()方法:返回两个集合的并集,即包含了所有集合的元素,重复的元素只会出现一次。

  union()方法语法:s1.union(s2 [,s3,...]) 

  例:集合a,集合b,集合z:z=a.union( b ) #合并两个集合,重复元素只会出现一次,返回一个新集合。

(3)【交集】a & b:返回既在集合a 中,又在集合b中的元素。

(301)交集的函数表示1:intersection()方法:用于返回两个或更多集合中都包含的元素,即交集。

  intersection()方法语法:s1.intersection(s2 [,s3,...]) 

  例:集合a,集合b,集合z:z=a.intersection( b )  #返回一个新集合

(302)交集的函数表示2:intersection_update()方法:用于获取两个或更多集合中都重叠的元素,即计算交集。

  intersection_update()方法语法:s1.intersection_update(s2 [,s3,...])

  例:集合a,集合b:a.intersection_update( b ) #移除a 集合中不存在于b 集合中的元素。

(303)intersection()与intersection_update()的区别: intersection() 方法是返回一个新的集合;intersection_update() 方法是在原始的集合上移除不重叠的元素。

(4)【补集】a ^ b:返回不同时在集合a,和集合b 中的元素。(在集合a中,但集合b中没有,和在集合b中,但在集合a中没有的元素)

(401)补集的函数表示法1:symmetric_difference():返回两个集合中不重复的元素集合,即会移除两个集合中都存在的元素。

  symmetric_difference()方法语法:s1.symmetric_difference(s2)

  例:集合a,集合b,集合z:z=a.symmetric_difference( b ) #返回两个集合组成的新集合,但会移除两个集合的重复元素。

(402)补集的函数表示法2:symmetric_difference_update():移除当前集合中在另外一个指定集合相同的元素,并将另外一个指定集合中不同的元素插入到当前集合中。

  symmetric_difference_update()方法语法:s1.symmetric_difference_update( s2 )

  例:集合a,集合b:a.symmetric_difference_update( b ) #在原始集合a  中移除与 b 集合中的重复元素,并将集合b 中不重复的元素插入到集合a 中。

(5)判断两个集合元素包含情况

(501)issuperset()函数方法:用于判断指定集合的所有元素是否都包含在原始的集合中,如果是则返回 True,否则返回 False。

  issuperset()方法语法:s1.issuperset( s2 )

  例:集合a,集合b:z=a.issuperset( b ) #判断集合b 的所有元素是否都包含在集合a  中 。

(502)issubset()函数方法:用于判断集合的所有元素是否都包含在指定集合中,如果是则返回 True,否则返回 False。

  issubset()方法语法:s1.issubset( s2 )

  例:集合a,集合b:z=a.issubset( b ) #判断集合 a 的所有元素是否都包含在集合 b 中。

(503)issuperset()与issubset()的区别:其实使用一个就行,谁在谁中,只要哪个集合放在前,哪个集合放在后即可。

(6)判断两个集合中是否有相同的元素:方法函数:isdisjoint() #返回布尔值,如果不包含返回 True,否则返回 False。

  例:集合a,集合b:z=a.isdisjoint( b ) #判断集合 b 中是否有元素在 集合 a 中。

(7)集合的拷贝:s.copy():

  例:集合a,集合b:b=a.copy( ) 

5、集合的基本操作:集合s

(1)添加 元素1:s.add( x ):如果 x 已经在集合s 中,则不做任何操作。

(2)添加 元素2:s.update( x ):参数可以是数组、列表、字典等;多个 x ,之间用逗号 (,)分隔。

(3)移除 元素1:s.remove( x ):将元素 x 从集合s 中移除;如果 x 不存在,则会发生错误

(4)移除 元素2:s.discard(x):将元素 x 从集合s 中移除;如果 x 不存在,则不会发生错误

(5)删除 元素3:x = s.pop( ):随机删除元素,但会返回删除的元素。s.pop()删除元素原理:集合s 的pop() 函数会对集合s 的元素进行无序的排序,然后对无序排序后的集合最左边的元素删除。

(6)集合元素个数:len( s ):返回集合s 的元素个数。

(7)清空集合:s.clear():清空集合s。

(8)判断元素x 是否在集合s 中:x in s:存在:返回True;不存在:返回False。

posted on 2021-11-03 09:14  xiangers  阅读(150)  评论(0编辑  收藏  举报

导航