线性结构特征
可迭代 for ... in
有长度,通过len(x)获取,容器
通过整数下标可以访问元素。正索引、负索引
可以切片
切片
sequence[start:stop]
sequence[start:stop:step]
通过给定的索引区间获得线性结构的一部分数据
start、stop、step为整数,可以是正整数、负整数、零
start为0时,可以省略
stop为末尾时,可以省略
step为1时,可以省略
切片时,索引超过上界(右边界),就取到末尾;超过下界(左边界),取到开头
在序列上使用切片[start:stop],子区间索引范围[start, stop),相当于从start开始指向stop的方向上获取数据
默认step为1,表示向右;步长为负数,表示向左
如果子区间方向和步长方向不一致,直接返回当前类型的"空对象"
如果子区间方向和步长方向一致,则从起点间隔步长取值
id
id(object)
CPython中返回对象的内存地址可以用来判断是不是同一个对象
切片赋值
切片操作写在了等号左边
被插入的可迭代对象写在等号右边
切片赋值用作初始化相当于copy,还可以使用。如果用在替换、插入元素,看似语法比较简洁,但是由于列表是顺序表结构,将会引起数据的挪动,这非常影响性能,应当尽量避免使用
z=list()
z[1:] = (40, 50 ,60, 70)
z
Out[4]: [40, 50, 60, 70]
z[3:] = (20,)
z
Out[6]: [40, 50, 60, 20]
分割
split(sep=None, maxsplit=-1) -> list of strings
从左至右
sep 指定分割字符串,缺省的情况下空白字符串作为分隔符
maxsplit 指定分割的次数,-1 表示遍历整个字符串
立即返回列表
rsplit(sep=None, maxsplit=-1) -> list of strings
从右向左开始切,但是输出的字符串字符不会反
sep 指定分割字符串,缺省的情况下空白字符串作为分隔符
maxsplit 指定分割的次数,-1 表示遍历整个字符串
立即返回列表
splitlines([keepends]) -> list of strings
按照行来切分字符串
keepends 指的是是否保留
行分隔符行分隔符包括\n、\r\n、\r等
a='abc dsc sda'
a.split()
Out[3]: ['abc', 'dsc', 'sda']
a.split('d')
Out[6]: ['abc ', 'sc s', 'a']
a.split('d',0)
Out[10]: ['abc dsc sda']
a.split('d',1)
Out[8]: ['abc ', 'sc sda']
a.split('d',2)
Out[7]: ['abc ', 'sc s', 'a']
a.split('d',3)
Out[9]: ['abc ', 'sc s', 'a']
s1 = '\na b \tc\nd\n'
print(s1)
a b c
d
a.splitlines(True)
Out[4]: ['\n', 'a b \tc\n', 'd\n']
a.splitlines()
Out[5]: ['', 'a b \tc', 'd']
partition(sep) -> (head, sep, tail)
从左至右,遇到分隔符就把字符串分割成两部分,返回头、分隔符、尾三部分的三元组
如果没有找到分隔符,就返回头、2个空元素的三元组
sep 分割字符串,必须指定
rpartition(sep) -> (head, sep, tail)
从右至左,遇到分隔符就把字符串分割成两部分,返回头、分隔符、尾三部分的三元组
如果没有找到分隔符,就返回2个空元素和尾的三元组
a=','.join('abcd')
print(a)
a,b,c,d
print(a.partition(','))
('a', ',', 'b,c,d')
print(a.rpartition(','))
('a,b,c', ',', 'd')
标签:abc,sep,Python,stop,切片,分隔符,字符串,Out
From: https://www.cnblogs.com/guangdelw/p/16918425.html