python 集合操作方法详解

发布时间:2022-04-24 09:40:35 人气:22 作者:多测师

  集合set

  集合用于包含一组无序的对象。与列表和元组不同,集合是无序的,也无法通过数字进行索引。此外,集合中的元素不能重复。set和dict一样,只是没有value,相当于dict的key集合,由于dict的key是不重复的,且key是不可变对象因此set也有如下特性:

  不重复,(互异性),也就是说集合是天生去重的

  元素为不可变对象,(确定性,元素必须可hash)

  集合的元素没有先后之分,(无序性)

  1、定义集合

  #第一种方法

  nums = [1,2,3,4,5,6,7]

  num_set = set(nums)

  print(num_set)

  结果:

  {1, 2, 3, 4, 5, 6, 7}

  #第二种方法

  num_set ={1,2,3,4,5,6,7}

  2、增(更新)

  set.add()

  set.update([])

  nums = {1,2,3,4,5,6,7}

  #set.add()增加只能增加一个,不能增加多个值

  # nums.add(8)

  # print(nums)

  #set.update()可以增加一个字符串,可以增加多个值

  # nums.update([8])

  # print(nums)

  # nums.update('8')

  # print(nums)

  nums.update([8,9,10])

  print(nums)

  3、删

  set1.remove(1)

  nums = {1,2,3,4,5,6,7}

  nums.remove(7)

  print(nums)

  结果:

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

  4、查:无法通过下标索引

  5、改:不可变类型无法修改元素

  6、交( &)

  nums1 ={1, 2, 3, 4, 5, 6}

  nums2 ={1, 2, 3, 4, 5, 10,7,8,9}

  #交的方式一:&

  a = nums1&nums2

  print(a)

  #并的方式二:intersaction

  b = nums1.intersection(nums2)

  print(b)

  结果:

  {1, 2, 3, 4, 5}

  {1, 2, 3, 4, 5}

  7、并(|)

  nums1 ={1, 2, 3, 4, 5, 6}

  nums2 ={1, 2, 3, 4, 5, 10,7,8,9}

  #并的方式一:|

  a = nums1|nums2

  print(a)

  #并的方式二:uniom

  b = nums1.union(nums2)

  print(b)

  结果:

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

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

python 集合操作方法详解

  8、差(-)

  nums1 ={1, 2, 3, 4, 5, 6}

  nums2 ={1, 2, 3, 4, 5, 10,7,8,9}

  #差的方式一:-

  a1 = nums1-nums2

  print(a1)

  a2 = nums2-nums1

  print(a2)

  #差的方式二:difference

  b1 = nums1.difference(nums2)

  print(b1)

  b2 = nums2.difference(nums1)

  print(b2)

  结果:

  {6}

  {8, 9, 10, 7}

  {6}

  {8, 9, 10, 7}

  9、对称差集(^)

  nums1 ={1, 2, 3, 4, 5, 6}

  nums2 ={1, 2, 3, 4, 5, 10,7,8,9}

  #对称差集表示方法一:^

  a1 = nums1^nums2

  print(a1)

  #对称差集表示方法二:symmetric_difference

  a2 = nums2.symmetric_difference(nums1)

  print(a2)

  结果:

  {6, 7, 8, 9, 10}

  {6, 7, 8, 9, 10}

  10、集合转换

  se = set(range(4))

  li = list(se)

  tu = tuple(se)

  st = str(se)

  print(li,type(li))

  print(tu,type(tu))

  print(st,type(st))

  结果:

  [0, 1, 2, 3]

  (0, 1, 2, 3)

  {0, 1, 2, 3}

  补充:frozenset

  冰冻集合,是一种特殊的集合类型,也是集合(集合是列表的话,冰冻集合就是元组)

  下面创建冰冻集合(一般不会创建空的冰冻集合)

  同时下面包含函数的补充

  #创建带数据的冰冻集合

  info = frozenset(('xuexi','gongzuo','kaoyan','xiuxi'))

  print(info,type(info))

  #成员监测

  result = 'gongzuo' in info

  print(result)

  #遍历冰冻集合

  for i in info:

  print(i)

  #集合推导式(无法得到冰冻集合,可以得到集合,列表,元组,字典类型)

  result = {i for i in info}

  print(result,type(result))

  #函数

  #冰冻集合可以使用集合的函数(不修改集合本身的函数都可以使用)

  info = frozenset(('xuexi','gongzuo','kaoyan','xiuxi'))

  #copy()

  result = info.copy()

  print(result)

  #集合操作 交集,并集,差集,对称差集等 不修改冰冻集合本身就能使用:冰冻集合的操作结果都是冰冻集合

  info = frozenset(('xuexi','gongzuo','kaoyan','xiuxi'))

  info2 = {'xuexi','gongzuo','kaoyan','xiuxi'}

  #冰冻集合操作

  result = info.union(info2)

  print(result)

  #普通集合操作(冰冻集合是参考集合)

  result = info2.union(info)

  print(result)

  以上内容为大家介绍了python 集合操作方法详解,希望对大家有所帮助,如果想要了解更多Python相关知识,请关注多测师。https://www.e70w.com/xwzx/


返回列表
在线客服
联系方式

热线电话

17727591462

上班时间

周一到周五

二维码
线