先來看了案例
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:]返回[]空列表