python 数据结构_python数据结构总结——集合

python中,列表和元组都是序列的一种,它们的基本特征,最大区别在于,列表是可变的,而元组则是不可变的。python中还有另外一种序列,叫做集合。

python集合

集合也是一种序列。它的特点是可变,但是无法通过索引操作。因为集合中的元素是无序的。当试图通过索引进行操作时,会提示TypeError,类型错误。集合中的元素还是不可重复的。当尝试向一个集合中,添加多个重复元素时,重复元素只会存在一个。可通过大括号来创建集合,如下:

7aec54e736d12f2e924b0eb35bae7b648435680d.png?token=5db917cb9b352abe2016a0bca48db53e大括号创建集合

也可以通过set函数来创建集合,它接受一个序列作为参数,会将该序列中的元素放入集合。仍然会有去重效果。如下:

738b4710b912c8fc31dad702e96f3c43d7882142.jpeg?token=7a70d095bdadc289605767ca5a3f8aa3set函数创建集合

python集合方法

通过add或update方法都可以添加元素到集合,add只能添加单个元素,update可以以序列或字典作为参数。当以字典作为参数时,会将字典中的值都添加到集合中。仍然会有去重效果。如下:

0bd162d9f2d3572c58f8b2a29f7fcd2162d0c32c.jpeg?token=99a634b0f3092dc400879d040723ee20add和update

copy方法可以用于拷贝,clear方法可以清空集合中的元素。如下:

c8ea15ce36d3d539002fdaf22ceb4756352ab060.jpeg?token=d215a06ad5ba5733d2a1e56b035121a8copy和clear

这里的拷贝仍然是一个浅拷贝,深拷贝和浅拷贝可参考文章:python数据类型总结——字典

删除集合中指定的元素可以用discard或remove,二者不同之处在于,当试图删除一个集合中不存在的元素时,remove会报错,discard不会。如下:

6a63f6246b600c33e356c99f0f20ff09d9f9a128.jpeg?token=e98f283ff691df52156b068d7d185d01删除元素

某些场景下,如果希望随机删除集合中的某元素,可使用pop方法,它的返回值为被删除的元素。如下:

5243fbf2b2119313a92342107354a2d190238da4.jpeg?token=663cb5cfb50960e0ac52bcc563f9059e随机删除

集合和数学中的集合一样,可以进行差集,交集或并集的运算。difference用于求差集,intersection用于求交集,union用于求并集。如下:

0dd7912397dda144c39c653da6db7ea40df4861e.jpeg?token=46c70006d4fadbac908994f15af81b36差集、交集、并集

计算差集还有另一个方法,dirrerence_update,它于difference的区别在于:

difference会返回一个新的集体,用于存放差集结果。difference_update没有返回结果,会直接修改set1中的内容为差集结果。如下:

7a899e510fb30f240d760ffbdcf97f45af4b03c8.jpeg?token=ead09195af341a0be21e1f57b0f62d4d差集

用于交集intersection,也有类似的方法,Intersection_update,二者区别和difference和difference_update之间的区别是一致的。

isdisjoint用于判断两个集合中是否有重复元素,有则返回False,无则返回True。issubset和issuperset两个方法可以用于判断两个集合是否存在子集关系。如下:

95eef01f3a292df518fe4275aa5df26634a87300.png?token=bb443435eb30e24b1fca0bc6a81cdbe0判断重复和子集

有时候,我们希望把两个集合中不重复的元素都找出来,这时候,可以用symmetric_difference方法,相应的,它也有一个symmetric_difference_update兄弟。如下:

024f78f0f736afc357530f1ba47545c2b64512e6.png?token=180474021da8873ea0e924c58a14d6a9找不重复

python基本数据类型整理

至此,我们了解了python中所有的基本数据类型。在学习时,我们关注了它们的一些基本特征,如是否可变,是否是序列,是否有序等。整理总结如下:

37d12f2eb9389b5093e034329c594bdbe7116e22.jpeg?token=95c82b5f69b1341b771908aca15e24cc

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值