繁体   English   中英

Python3切片负止损和负步

[英]Python3 slicing negative stop and negative step

请看下面的陈述,从 1 到 4,这一切都是有道理的,并且符合我对 python 切片的了解。 但我无法解释第 5 条陈述的结果。任何人都可以帮助解释第 5 条陈述的结果......

x = [1,2,3,4,5,6,7,8,9,10]

#1
print(x[::-2]) 
# prints [10, 8, 6, 4, 2]

#2
print(x[:-2])
# prints [1, 2, 3, 4, 5, 6, 7, 8]

#3
print(x[:-2][::-2])
# prints [8, 6, 4, 2]

#4
print(x[::-2][:-2])
# prints [10, 8, 6]

#5 (please explain this one)
print(x[:-2:-2])
#prints [10]

正如您从示例 #1 中看到的那样,当您有一个负步长值但没有开始时,它会从最后一个开始反向工作。 所以第一个值是list中的最后一个值,即索引-1处的10

结尾为-2 ,表示倒数第二个。 但是由于您的步骤是-2 ,因此序列中的下一个将是索引-3 ,即过去的-2 所以序列立即结束。

#5 (please explain this one)
print(x[:-2:-2])
#prints [10]

它只是从 0 索引开始并在 -2 停止(意味着它将 go 到最后的第三项)然后它开始递增 -2。 切片语法:

x[start:stop:step]

所以肯定会打印 10

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM