对python numpy中的负步进感到困惑吗

2024-07-05 09:25:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在努力理解切片的每一个方面,但我仍然在努力

以下是我迄今为止的理解:

完整切片语法为:start:stop:stepstart指元素的索引,该元素用作切片的开始stop是指我们应该在完成切片之前停止的元素的索引step允许您在开始:停止范围内获取每个第n个元素

好的,这一切都是有道理的,但是当我们反转列表时,我很困惑stop是如何工作的

我使用Pycharm创建了这个简短的示例:

nums = [10, 20, 30, 40, 50, 60, 70, 80, 90]
print (nums[-2:1:-1])

Pycharm中的正确答案:[80,70,60,50,40,30]

但是,我认为止损点应该是10…因为索引[0]是10,索引[1]是20,如果我使用上面的逻辑。。。那么“就在索引[1]之前是索引[0],它是10。那么为什么它在30处停止呢..它是索引[2]


Tags: 答案元素示例列表step语法切片逻辑
2条回答

有人可能会就此逮捕我,但既然你往回看,索引[1]前面的数字确实是索引[2]。因为你做了负步进,所以把整个列表看作是相反的

有一件事可以帮助你:假装你站在售票线上。你的老板说“去看排队的人,在你找到戴帽子的人之前停下来”(戴帽子的人是索引[1])。您将停止的位置是索引[2]。然而,如果你和你的老板站在队伍的后面,他说“排队,在你找到戴黑帽子的人之前停下来”,你就会停在索引[0]。这完全是一个关于你从哪里开始的观点问题

谢谢大家。你的解释有道理。我希望这篇文章能帮助学习Python切片的人

相关问题 更多 >