MST

星途 面试题库

面试题:Python中列表索引从0开始对切片操作的影响

在Python中,列表索引从0开始。请说明这对列表切片操作(如`list[start:stop:step]`)有怎样具体的影响?并举例说明`start`、`stop`、`step`为不同值时,基于索引从0开始是如何正确切片的。
31.1万 热度难度
编程语言Python

知识考点

AI 面试

面试题答案

一键面试
  1. 对列表切片操作的影响
    • 因为列表索引从0开始,所以startstopstep都是基于这个起始索引0来计算位置的。start表示切片起始位置(包含该位置元素),stop表示切片结束位置(不包含该位置元素),step表示切片的步长。它们都依据索引0来确定具体在列表中的操作位置。
  2. 举例
    • startstopstep常规取值
      my_list = [10, 20, 30, 40, 50, 60, 70, 80]
      # start = 1, stop = 4, step = 1
      result1 = my_list[1:4:1]
      print(result1)
      
      这里从索引1(值为20)开始,到索引4(不包含,值为50)结束,步长为1,所以结果是[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]
    • startstopstep都省略
      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]