您现在的位置是:首页 > 网络趣梗网络趣梗

set集合的方法(定义set集合)

2022-08-29 20:04:37网络趣梗0人已围观

简介  set集合的方法(定义set集合),新营销网红网本栏目通过数据整理汇集了set集合的方法(定义set集合)相关信息,下面一起看看

  set集合的方法(定义set集合),新营销网红网本栏目通过数据整理汇集了set集合的方法(定义set集合)相关信息,下面一起看看。

   Set是Python定义的一个非常重要的组合对象。作为元素的一组对象可以集合在一个对象中,元素之间没有特殊的关系。

  使用一对花括号作为分隔符。这些元素用逗号分隔。同一个中的每个元素都是唯一的。元素之间不允许重复。

   Python有两种类型的表示:set和frozenset(冻结)。两者的区别在于set是可变类型,而frozenset是不可变类型。

  概念的概念来源于数学。数学是元素的集合,它最重要的性质是回答一个元素E是否属于S,即判断E是否是S的元素,在相关的讨论中,元素作为一个未定义的概念,除了元素判断之外还有一组重要的运算,包括两者之间的子集判断、两者的并、交、差集运算等。这些操作都可以基于的元素关系来定义。

  程序经常需要带有属性的对象,Python为它们提供了类型。我们可以将一批任意元素放在一起,形成一个set或frozenset类型的对象。这里主要讨论Set。事实上,所有与元素变化无关的东西都适用于frozenset。

   Python对的元素也有要求,它们只能是不可变的对象(hasheable),并且必须能够进行相等比较(使用==运算符)。内置的数字、字符串、bool对象、元组都符合这些要求(不包括列表、字典和其他可变类型的数据)。

   Python提供了一个内置函数hash()来计算对象的哈希值。任何不能计算哈希值的对象(调用内置函数hash()抛出异常)都不能作为元素使用(当然也不能作为dictionary对象的“key”)。

  由于基本概念来源于数学,Python还支持元素判断和各种重要运算,包括并、交、差等等。此外,集合类型还支持许多改变操作,包括添加或删除元素,以及由一些扩展赋值运算符描述的改变操作。

  和数学类似,Python中的元素是唯一的,没有重复的元素,元素之间没有顺序关系。

   Set是仅由key支持的dict:类似于dict:set是一组键,但不存储值。因为键不能重复,所以集合中没有重复的键。同样,等价于list,set类似于dict,其搜索速度极快,还可以支持的并、交、差运算。

   2构造Python是用{expression,…}这样的表达式来描述的。作为这些表达式的计算结果而获得的元素。在创建时,解释器会自动删除重复的元素。

  值得注意的是,的这种描述形式类似于字典,两者的区别在于构成要素的不同。的每个元素是一个通用表达式,而字典的每个元素描述一对用冒号分隔的表达式。

   2.1直接使用定义来构造集合

   2.2使用set()变换,变换后的对象可以是任意序列或迭代对象。

  由于花括号形式总是生成一个集合(或字典),要生成不可变的frozenset的对象,只能使用frozenset(……)的形式,例如:

   2.3由描述性公式生成

   3 set等类型转换tuple set: tuple元素要求用==比较,只保留一个重复元素,顺序丢失;

   Set tuple:没有限制;

   List set:要求List元素满足set的要求,只保留一个重复元素,因此顺序丢失;

  集合列表:没有限制;

   Str set:元素是单个字符,只保留一个重复字符,因此顺序丢失;

   Dict set:元素是字典中的关键字;

   4的比较主要是比较包含关系(一个的元素是否属于另一个),即子集和超集的关系。

  如果一个元素的所有元素都属于另一个元素,则前者是后者的子集,或者后者是前者的超集。显然,一个总是自身的子集,也是自身的超集。如果一个是另一个的子集,并且两者不相等,那么前者是真子集,同样,后者是真超集。

  也就是说,子集和超集的关系是包含或相等的;然而,真子集和真超集是包含的和不相等的。

   S1=s2返回真S1。is subset (s2)当且仅当s1是s2的子集,同上s1 s2返回Trues1=s2当且仅当s1是s2的真子集,Trues1.issupset(s2)当且仅当s2是s1的超集。与s1 s2相同。当且仅当s2是s1的真超集,返回Trues1.isdisjoint(s2)判断两者是否不相交,即是否有公共元素5运算Python提供了一组数学运算对应的运算。

   S1。联盟(S2,)和运算生成一个新的S1

   S2

  .同上S1。十字路口(S2,)交集运算生成新的S1 S2.同上S1。差异(S2、)差分运算生成一个新的S1-S2-.同上S1。对称_差分(S2) (S1-S2)

   6修改和更新s1.update(s2,…)修改s1以包括其他元素s1

  =s2

   …同上s1.intersection_update(s2,…)修改s1以包括所有公共元素s1=s2 …同上s1.difference_update(

  s2,…)修改s1,从中去除属于其他 的元素s1 -= s2 - …同上s1.symmetric_difference_update(s2)修改s1,使之包含仅属于s1或s2之一但不同时属于两者的元素s.add(x)将元素x加入 ss.remove()从s里删除元素x,在s没有x时报错s.discard(x)如果s里有x就抛弃它,没有x时什么也不做s.pop()从s里删除某个(任意)元素并返回它,具体元素由 内部确定。如果操作时s为空则报错s.clear()清除s里的所有元素

  附原码:

  x = 2

  s1 = {x,x+5,x**10} # 直接使用定义构造set

  s2 = { Chinese , Math , English , Physics , Chemisty , biology , Math }

  print(s1, \n ,s2)

  {1024, 2, 7}

  { Chemisty , Math , Physics , Chinese , biology , English }

  # set基于 == 判断元素是否重复,如果重复,后面的舍弃掉

  print({1,1.0})

  print({1.0,1})

  print({1,True})

  print({False,0})

  print({1,1.0,True,0,False})

  {1}

  {1.0}

  {1}

  {False}

  {0, 1}

  lis = [1,1,2,3,5,8,13]

  tup = (1,7,13,19,23,29)

  print(set(lis)) # 使用set()转换list构造set

  print(set(tup)) # 使用set()转换tuple构造set

  print(frozenset(lis)) # 使用frozenset转换list构造frozenset

  {1, 2, 3, 5, 8, 13}

  {1, 7, 13, 19, 23, 29}

  frozenset({1, 2, 3, 5, 8, 13})

  # 用描述式生成

  s3 = {x*y for x in range(10) for y in range(10) if x*3 y**2}

  相当于以下代码:

  s3 = set()

  for x in range(10):

  for y in range(10):

  if x*3 y**2:

  s3.add(x*y)

  fs = frozenset(n ** 2 for n in range(-10, 20))

  print(s3, \n ,fs)

  {0, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 14, 15, 16, 18, 20, 21, 24, 25,

  27, 28, 30, 32, 35, 36, 40, 42, 45, 48, 49, 54, 56, 63, 64, 72, 81}

  frozenset({64, 1, 0, 121, 100, 36, 4, 196, 225, 9, 169, 256, 324,

  361, 289, 16, 81, 49, 144, 25}

  a = set( abracadabra ) # unique letters in a

  b = set( alacazam ) # unique letters in b

  print(a)

  set

  火树银花什么意思(成语中的化学常识)

  摇一摇传图(「摇一摇」,你们还在玩吗?)

  海清演过的电视剧(海清这部仅12集的新剧,已经露出了“爆款”的潜质)

  年末净资产(发生超过上年末净资产百分之十重大损失)

  打印机安装步骤(新手小白如何安装打印机)

  nba名人堂(霍华德谈NBA名人堂)

  交通银行信用卡进度(信用卡审核进度查询通道大全)

  蝰蛇多少钱(8.4L排量道奇蝰蛇)

  怎么开罐子(罐子的盖子难以打开?)

  碑文怎么写(碑文应该怎么写?)

  爱情偶像剧(宅家必看八部高甜偶像剧)

  疯狂的武神(《雷神4》有多疯狂?)

  更多set集合的方法(定义set集合)相关信息请关注本文章,本文仅仅做为展示!

Tags: 网络趣事  

很赞哦! ()

随机图文

留言与评论 (共有 条评论)
验证码:

本栏推荐