千锋教育-做有情怀、有良心、有品质的职业教育机构

python 集合操作方法详解

来源:千锋教育
发布时间:2023-11-07 08:59:00
分享

集合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}

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'ininfo

print(result)

#遍历冰冻集合

foriininfo:

print(i)

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

result={iforiininfo}

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相关知识,请关注IT培训机构:千锋教育。https://www.mobiletrain.org/


声明:本站部分稿件版权来源于网络,如有侵犯版权,请及时联系我们。

相关推荐

  • Python 规范命名变量 因为名字不能乱起,要是你一个想法,他一个想法,大家都对对方的名称不了解,这样也很难持续下去,因此这里说一下变量规范命名的规则和注意事项。1、变量定义规则:1,变量名只能是字母,数字或者下划线的任意组合
  • Python 代码排版问题 一,代码排版:1,缩进。4个空格的缩进(编辑器都可以完成此功能),不使用Tap,更不能混合使用Tap和空格。2,每行最大长度79,换行可以使用反斜杠,最好使用圆括号。换行点要在操作符的后边敲回车。3,
  • Python 软件开发目录规范的重要性 为什么要设计好目录结构?"设计项目目录结构",就和"代码编码风格"一样,属于个人风格问题。对于这种风格上的规范,一直都存在两种态度:一类同学认为,这种个人风格问题"无关紧要"。理由是能让程序work就
  • 关于 Python 配置文件的使用方法 很多项目对配置文件的使用做法是:配置文件写在一个或多个python文件中,比如此处的conf.py。项目中哪个模块用到这个配置文件就直接通过importconf这种形式来在代码中使用配置。这种做法我不
  • Python之什么是面向对象? OOP(ObjectOrientedPrograming)编程是利用“类”和“对象”来创建各种模型来实现对真实世界的描述。怎么说呢?核心是“对象”二字,要理解对象为何物,必须把自己当成上帝,在上帝眼里
  • Python 面向过程 python面向过程优点:复杂的问题流程化,进而简单化(一个复杂的问题,分成一个个小的步骤去实现,实现小的步骤将会非常简单)举个典型的面向过程的例子,写一个数据远程备份程序,分三步,本地数据打包,上传