面试题答案
一键面试- 对列表切片操作的影响:
- 因为列表索引从0开始,所以
start
、stop
和step
都是基于这个起始索引0来计算位置的。start
表示切片起始位置(包含该位置元素),stop
表示切片结束位置(不包含该位置元素),step
表示切片的步长。它们都依据索引0来确定具体在列表中的操作位置。
- 因为列表索引从0开始,所以
- 举例:
start
、stop
、step
常规取值:
这里从索引1(值为20)开始,到索引4(不包含,值为50)结束,步长为1,所以结果是my_list = [10, 20, 30, 40, 50, 60, 70, 80] # start = 1, stop = 4, step = 1 result1 = my_list[1:4:1] print(result1)
[20, 30, 40]
。start
省略:
由于my_list = [10, 20, 30, 40, 50, 60, 70, 80] # start省略,stop = 3, step = 1 result2 = my_list[:3:1] print(result2)
start
省略,默认从索引0开始,到索引3(不包含)结束,步长为1,结果是[10, 20, 30]
。stop
省略:my_list = [10, 20, 30, 40, 50, 60, 70, 80] # start = 2, stop省略, step = 1 result3 = my_list[2::1] print(result3)
stop
省略时,会一直取到列表末尾,从索引2(值为30)开始,步长为1,结果是[30, 40, 50, 60, 70, 80]
。step
为负数:
当my_list = [10, 20, 30, 40, 50, 60, 70, 80] # start = 5, stop = 1, step = -1 result4 = my_list[5:1:-1] print(result4)
step
为负数时,从索引5(值为60)开始,反向取到索引1(不包含,值为20),结果是[60, 50, 40, 30]
。start
、stop
、step
都省略:
这相当于复制整个列表,结果是my_list = [10, 20, 30, 40, 50, 60, 70, 80] # start、stop、step都省略 result5 = my_list[:] print(result5)
[10, 20, 30, 40, 50, 60, 70, 80]
。