Python笔记

2020-09-23 11:25:16 浏览数 (2)

切片

:在python原生list中的运用 通常一个切片操作要提供三个参数[start:stop:step]

start是切片的起始位置

stop是切片的结束位置(不包括)

step可以不提供,默认值是1,步长值不能为0,不然会报错。

ValueError: slice step cannot be zero

代码语言:javascript复制
list=[1,2,3,4,5,6,7,8,9]

当step为正数时,以list[start]元素位置开始, step做为步长到list[stop_]元素位置(不包括)为止,从左向右截取。start和stop不论是正数还是负数索引还是混用都可以,但是要保证 list[stop]元素的【逻辑】位置,必须在list[start]元素的【逻辑】位置右边,否则取不出元素。

代码语言:javascript复制
print(list[0:4])

[0, 1, 2, 3]

代码语言:javascript复制
print(list[1:-1])

[1, 2, 3, 4, 5, 6, 7, 8]

代码语言:javascript复制
print(list[-8:8])

[2, 3, 4, 5, 6, 7] 当 step 是负数时,以list[start]元素位置开始, step做为步长到list[stop]元素位置(不包括)为止,从右向左截取,要保证 list[stop]元素的【逻辑】位置

必须在list[start]元素的【逻辑】位置左边,否则取不出元素。

代码语言:javascript复制
print(list[5:2:-1])

[5, 4, 3]

代码语言:javascript复制
print(list[7:-7:-1])

[7, 6, 5, 4]

start和stop在符合虚拟的逻辑位置关系时,start和stop的绝对值是可以大于length的。

代码语言:javascript复制
print(list[-12:5:2])

[0, 2, 4]

start和stop都是可以省略的,例如 list[:],被省略的默认由其对应左右边界起始元素开始截取。

代码语言:javascript复制
print(list[:])

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

常用的切片操作

在某个位置插入元素

代码语言:javascript复制
list[3:3] = "a"
print(list)

[0, 1, 2, 'a', 3, 4, 5, 6, 7, 8, 9]

代码语言:javascript复制
list[5:5] = ["a","b"]
print(list)

[0, 1, 2, 3, 4, 'a', 'b', 5, 6, 7, 8, 9]

0 人点赞