这行代码
print [0, 1, 2, 3, 4][0:1:1]
Run Code Online (Sandbox Code Playgroud)
回报[0].
但是,以下代码行:
print [0, 1, 2, 3, 4][0:0:1]
Run Code Online (Sandbox Code Playgroud)
回报[].
为什么是这样?基于这个Explain Python的切片表示法,我的理解是格式应该是:
a[start:end:step] # start through not past end, by step
Run Code Online (Sandbox Code Playgroud)
所以不应该[0, 1, 2, 3, 4][0:0:1]以第0个值开始和结束,从而返回[0]?
切片的"结束"索引始终从结果中排除 ; ie,listy[start:end]返回所有listy[i]where start <= i < end(注意使用<而不是<=).因为没有i这样的数字0 <= i < 0,所以listy[0:0:anything]总是一个空列表(或错误).