L = [11, 21, 31, 41] 和L[0:2]
不是“底层用了 slice()
”,而是 Python 解释器在看到 L[0:2]
时,会当场 把字面量 0:2
解释成一个临时的 slice(0, 2, None)
对象,再把这个对象传给 L.__getitem__
。
L[0:2] # 语法糖
L.__getitem__( slice(0, 2, None) ) # 实际发生
那 slice()
有什么用?
slice
对象例子 1:把切片存起来,反复用
head = slice(0, 2)
for lst in lists:
print(lst[head]) # 复用同一个切片