字符串,列表,元组,集合和字典这些在其他语言中单独存在的类型,在python中我们可以统一称为序列,因为它们都是具有可迭代功能的对象。
而且针对这些序列,python有一套统一的函数可以对其操作。
list(序列)可以将序列转化为列表,tuple(序列)可以将序列转化为元组,str可以将任何对象转化为字符串,len(对象)可以返回长度或者元素个数,max,min,sum就不提了,懂得都懂。
然后sorted里面可以写三个参数,第一个必选可迭代对象,第二个是可选,指定对象中某个元素来排序,第三个则是reverse,默认升序,改为true则变成了降序。
要想直接反向排序,reversed(序列)可以直接反转序列,当然还有[::-1],一个功能多项技术,然后还有enumerate可以给便利的数据对象增加索引,以及zip函数可以将可迭代的对象打包成元组,用来节省内容,然后再用zip(*zip(序列))来解压成列表。
然后针对不同序列,可以使用id函数来确定这个序列是否是可变类型,如果操作前的数值和操作后的数值不同,为不可变类型,比如数组就是不可变,更直接的是用hash函数,如果报错为可变。
至于新奇的是,不可变类型包含起来的可变类型是可变的,像不像你的附庸的附庸不是我的附庸。
针对不同序列不同的函数,可以使用dir函数来查看自带的函数,比如字典的popitem函数可以随机返回并删除一对键和值。
同时,对于序列的复制,有浅拷贝,深拷贝和引用,如果是引用,原序列数据调整,复制的也会变化,而浅拷贝,原数据调整,现在的数据不会变化,深拷贝的实际效果,我目前看来和引用相同。
最后说一下我认为区分这些序列类型的方法,只有单独的字符串,但这个类型必定是字符串,而如果除了数据还有逗号类型(没有其他括号)就变成元组(元组的类型可不是由括号决定的),而被方括号包裹的类型则为数组,而大括号包裹并且数据不是键值对的则是集合,大括号包裹数据是键值对的则是对象。