通过C学Python(2)序列类型

序列类型:

自己的理解,包含有顺序的一组元素的容器,其中每一个元素都可以通过表示其顺序位置的整形数字下标取出来。

字符串 str
列表 list
元组 tuple

字节流 bytes ,一般Python中只把str/list/tuple当做序列类型,我发现bytes很多地方也符合序列类型的特性,这里放在一起

字符串的元素是一系列字符,其中的元素不可以单独更改,在C中类比为const char* 类型,表示时既可以用单引号'也可以用双引号",还可以用三个单引号'''或三个双引号"""来包含其中的元素,用单引号包含的字符串,其中的元素如果有单引号,则需要转义,而其中的双引号无需转义,反之用双引号包含的字符串,其中的元素如果有双引号,则需要转义,而其中的单引号无需转义,在三引号中,内部的单引号双引号都无需转义,而且支持换行。在引号前加r,变成r'data'这样的形式,则引号中的转义字符全部失效,即原样打印引号中的内容,通常构建正则表达式模式的时候用的比较多。字符串的每一个元素都是一个字符,但是数据类型同样为str。

字节流与字符串类似,元素同样不可以更改,表示也可以用单引号、双引号、三引号,但是要在引号前加b,变成b'data'这样的形式。字节流的每一个元素都是int,但是切片类型为bytes。

列表是一种比较强大的容器,其中的元素可以是任意类型,包括可以放入另一个列表,并且其中的元素可以更换,可以添加和删除。类比C,可以看做是元素为void*的链表,但是list比这种链表要强大的多。表示方法为用中括号包含其中的元素,每个元素之间用逗号分隔。

元组是一种简化的列表,从创建之后就是不可变的,不能添加、删除、更改其中的元素,但是其中的元素可以是可变的数据类型,比如list就是一种可变的类型。表示方法为用小括号包含其中的元素,每个元素之间用逗号分隔。

切片:截取序列类型中一部分元素作为新的序列对象,表现形式和通过索引取元素类似,用中括号[],其中的参数和C的for循环常用方式类似,第一个参数为起始位置,第二个参数为终止位置,第三个参数为步长,例如a[1:6:2],类比为for(i=1;i<6;i+=2),将a中符合该条件的元素重新拼装到一起,形成一个新的序列对象。步长及其前的冒号可以省略,默认步长为1。起始位置可以留空,默认值为0;终止位置可以留空,默认找到结尾;三个参数都可以为负数,位置为负数表示从结尾向前数。

类型转换:

str() 将对象转换为字符串类型,对象用print打印出来是什么样,转换出来的字符串就是什么样

list() 将对象转换为列表类型,序列类型的数据都可以转换为list,将其中每一个元素遍历出来,添加到新生成的list中

tuple()将对象转换为元组类型,和list()类似

bytes()将对象转换为字节流类型,list和tuple的元素,如果都是在0~255之间的int型数据,可以直接转换为bytes,字符串要转换为bytes必须指定字节编码,例如bytes('abc','utf8')

检查成员:

检查一个元素是否是序列对象中的成员,用法 :  元素 in 序列  ,返回值为True或False,可以用在条件判断

拼接:

两个相同序列类型的对象可以进行拼接,例如'aaa'+'bbb'='aaabbb'

复制:

一个序列类型对象可以通过乘一个int型数完成复制,例如'123'*4='123123123123'

检查一个数据的数据类型:type(数据或变量)

查询一个序列对象的元素个数:len(序列对象)

查看一个类有哪些方法可用:dir(数据或变量或类)

查看一个类或函数的使用说明:help(待查数据)

原文地址:https://www.cnblogs.com/ikamu/p/8290406.html