目录
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高级编程方面的内容,不过大家不必过于纠结,如果只是刚开始入门那就知道记住这些用法就足够了,对于可迭代、可哈希这类概念等待我后续慢慢讲解。最后的最后,原创不易,给个三连吧!!!