【问题标题】:Python slice with negative indices experiment带有负指数实验的 Python 切片
【发布时间】:2022-11-10 21:40:43
【问题描述】:

在python教程(https://docs.python.org/3/tutorial/introduction.html#strings)中, 切片被解释为将索引视为字符之间的指向,第一个字符的左边缘编号为 0。然后 n 个字符的字符串的最后一个字符的右边缘具有索引 n,例如:

继续说 - “从 i 到 j 的切片由分别标记为 i 和 j 的边缘之间的所有字符组成。”

但是,当我尝试打印以下两种情况时,它似乎错过了 P。

Case1: print(word[6:0:-1])--> 输出'nohty'

Case2: print(word[6:-6:-1])--> 输出'nohty'

谁能提供一个可能的解释为什么它不打印'nohtyP'? (附注 - 我知道我可以让末端空置以获得“P”。)

【问题讨论】:

  • 是的,这是整个“将索引视为字符之间的指向”的一个缺陷。它适用于前向切片,但一旦您开始考虑向后切片,它就会崩溃。你已经达到了这种思维方式的极限。你将不得不转向一个更难记住但更准确的心智模型。

标签: python


【解决方案1】:

在切片中,不考虑“停止”边界(不使用上限,如果使用前向切片,则不使用下限以避免混淆)。这解释了为什么您在案例 1 中没有预期的结果。

如果不想打印“nothyP”,可以使用以下表达式:print(word[::-1])。如您所见,当您不提及切片索引时,将考虑整个字符串。

【讨论】:

    猜你喜欢
    • 2021-04-18
    • 2015-06-28
    • 1970-01-01
    • 2012-07-05
    • 2018-08-07
    • 1970-01-01
    • 2021-11-09
    • 2015-02-02
    • 2012-04-15
    相关资源
    最近更新 更多