老衛帶你學---Python中列表切片list[-1:]與list[:-1]誤區

先來看了案例

li = [0, 1, 2, 3, 4, 5, 6, 7, 8]
print("li[-1:]: ", li[-1:])
print("li[:-1]: ", li[:-1])
print("li[0:2]: ", li[0:2])

li[-1:]: [8]
li[:-1]: [0, 1, 2, 3, 4, 5, 6, 7]
li[0:2]: [0, 1]

解析:
  在列表切片式中list[start, end], 返回的數據是索引爲start到索引爲end -1 的所有值, 雖然li[-1]是最後一個值,但是切片不會返回這個值,如果你想要最後一個值,可以直接使用li[start:]或者li[start:len(li)],至於爲什麼不會返回最後一個值,這個跟list查找元素時候的索引有關,當列表找到最後一個值的時候,其索引還是在前一個值,並不會指向最後一個值。

面試題:
給出一個列表li = [1, 2, 3, 4, 5], 問li[10:]會不會拋出異常?
答案:不會,li[10:]返回[]空列表

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章