Python日常(4):集合的创建、增加、修改、删除

目录

1.集合的创建

1)含初值的集合类型

2)空集合

2.集合的增加

3.集合的删除

1)整体删除

2)特定元素删除

3)不定元素的删除

4.集合的修改

结尾的话


1.集合的创建

1)含初值的集合类型

(1)set()方法

(2)直接赋值

2)空集合

问题:

需要注意的是,对于集合类型来说,空集合只能采用set()方法来实现,a={}方法python解释器默认为字典类型。

另外需要注意的是set()函数的参数需要是可迭代类型,那什么是可迭代类型呢?实际上字符串、集合、元组、列表都是可迭代类型,当然这里是包含但不仅限于这些,例如在python高级编程中还有队列、栈等数据类型,均是可迭代对象,由于这里我们只是python日常的初级编程阶段,就不过多叙述,在这里大家只需知道set()函数内部完全可以传递列表、字符串等类型,而不仅限于上述例子中的元组类型。要想了解相关内容大家可以查询其他资料,同时也请持续关注,后续小编也会涉及python面向对象编程及python高级应用方面的东西,到时候再具体讲解什么是可迭代对象。


2.集合的增加

由于集合是无序的,由此这里并不区分像字符串中的追加与插入的区别。

(1).add()方法

问题:

看到前面列出了那么长的例子,大家也应该想到了把,肯定是又又又又有问题了,是的。在这里需要注意的是集合的.add()方法只能添加可哈希对象,那什么是可哈希对象呢,不是可哈希对象有没有什么解决办法把它变成可哈希类型呢?有的,但这也是python高级编程的内容,在这里大家只需要大致了解,只要是内存地址在python解释器内部不可变那便是可哈希对象,那我怎么知道可变不可变呢?python提供了一个求内存地址的方法为id()函数,在前面的python日常模块我们也使用过,说的再多不如一个例子,我们直接看例子,大家应该就会有直观感受了。

可以看出同样都是赋值两次相同的值给不同的变量,对于字符串类型id值完全相同,对于列表类型却不相同,这也就是说列表是不可哈希类型,具体是为什么这里就不在讲述,大家要是感兴趣可自行查阅资料,这里给个提示,这与python解释器的内存管理有一定关系哦。

(2).update()方法

这里应该看出update方法与add方法的区别所在了,与add方法不同的是update方法只支持可迭代类型,上诉也讲述过那些为可迭代类型,这里也不再赘述。

(3)并运算

(4)list()方法

大家应该明白一点,对于任意类型的数据类型都可列表化,既然可以列表化那列表的所有东西便可以使用了,也就是说这里如果要展开的话又可以讲一节课了,这里就列出一个例子,不再具体讲述。


3.集合的删除

1)整体删除

(1)del方法

(2).clear()方法

问题:

在这里需要注意的是del方法和.clear()方法的区别,del是完全删除不仅删除了集合的内容同时也删除了a这个变量,而.clear()方法只删除集合内容并返回一个空集合。

2)特定元素删除

(1).remove()

(2).discard()

问题:

.remove()和.discard()区别在于对于未包含元素的去除方面,这里直接上例子。

有了这个例子应该就很明显了,对于.remove()方法移除未包含元素会产生异常,而.discard()方法则不会。

(3)减运算

3)不定元素的删除

(1).pop()方法

由于pop()方法的不确定性,因此它更适合于全员遍历且后续不在使用的情况,具体环境等待大家的进一步开发。


4.集合的修改

对于集合的修改,通常采用的方法是删除与增加相结合的方法。

(1).remove()和.add()方法结合

由于这种方法和前面几乎一致,在这里就不过多赘述,这里大家一定要注意为什么集合能采用这种方式,是由于集合的无序性,因此不存在特定位置特定元素的修改,才能采用删除与增加相结合的方式,而不需要注意插入顺序与位置。


结尾的话

由于很多东西在python基础教程这类书中是不太会提到的,所以大家可能对其中的某些方面不是很清楚或完全不知道,这里为了给大家将清楚也涉及到了一些python高级编程方面的内容,不过大家不必过于纠结,如果只是刚开始入门那就知道记住这些用法就足够了,对于可迭代、可哈希这类概念等待我后续慢慢讲解。最后的最后,原创不易,给个三连吧!!!

  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Chandni.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值