首页 新闻 会员 周边 捐助

L = [11, 21, 31, 41] 和L[0:2]

0
[已关闭问题] 关闭于 2025-09-03 15:24

L = [11, 21, 31, 41] 和L[0:2] 

_java_python的主页 _java_python | 小虾三级 | 园豆:900
提问于:2025-09-03 15:22
< >
分享
所有回答(1)
0

不是“底层用了 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]) # 复用同一个切片

_java_python | 园豆:900 (小虾三级) | 2025-09-03 15:23
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册