失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > Day7 python高级特性-- 切片 Slice

Day7 python高级特性-- 切片 Slice

时间:2021-02-20 23:35:08

相关推荐

Day7 python高级特性-- 切片 Slice

先举一个例子,取list或tuple中的某几个元素: 1.取 ['a','b','c','d','e','f'] 第1、2、5、6个元素:

>>> a = ['a','b','c','d','e','f']

>>> [ a[0], a[1], a[4], a[5] ]

['a', 'b', 'e', 'f']

2.取前x个元素可以用循环的方式将0~(x-1) 索引范围内的元素取出

不过这样太繁琐了。使用切片(Slice)会非常方便。

切片语法[x:y:z] , x: 开始切片位置, y:结束切片位置(不包含y), z:xy切片后间隔z个元素输出,默认为1可以省略。 如果x为0 ,那么0可以省略,写作为[:y];如果y为最后一个元素,那么y可以省略,写作[x:]。 取前三个元素(索引为0,1,2)

>>> ['a','b','c','d','e','f'] [0:3]

['a', 'b', 'c']

or

>>> a = ['a','b','c','d','e','f']

>>> a[0:3]

['a', 'b', 'c'] [x:y] ----> 从x开始取到y ,不包含y。 也可以像a[-1] 取倒数第一个元素的方式,支持倒数切片:

>>> a = ['a','b','c','d','e','f']

>>> a[-2:-1]

['e']

>>> a[1:-1]

['b', 'c', 'd', 'e'] 取前10个元素

a[:10]

取后10个元素

a[-10:]

取11~20个元素

a[10:20] 取前10个元素,每两个元素取一个(一共取5个)

a[:10:2] 取全部元素(克隆一个)

a[:] #相当于从0取到最后,所以两个值都省略了 字符串也可以看成是一种list ,每一个字符就是每一个元素,因此,字符串也可以使用切片来操作。

>>> a = 'abcdefghijklmn'

>>> a[0:3]

'abc'

>>> a[-2:3]

''

>>> a[-2:-1]

'm'

>>> a[-1:]

'n'

#练习题

#利用切片操作,实现一个trim()函数,去除字符串首尾的空格

def trim(a):

lens = len(a)

if a[:1] == ' ':

a = a[1:]

return trim(a)

elif a[-1:] == ' ': #elif a[-1:lens] == ' ': 直接用[-1:] 就是最后一个元素了~

a = a[:lens-1]

return trim(a)

else :

return a

#测试函数

print(trim(' abc'))

print(trim('hello ')) if trim('hello ') != 'hello':

print('测试失败1!')

elif trim(' hello') != 'hello':

print('测试失败2!')

elif trim(' hello ') != 'hello':

print('测试失败3!')

elif trim(' hello world ') != 'hello world':

print('测试失败4!')

elif trim('') != '':

print('测试失败5!')

elif trim(' ') != '':

print('测试失败6!')

else:

print('测试成功!')

如果觉得《Day7 python高级特性-- 切片 Slice》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。