【问题标题】:output of "s = "0123456789" print(s[2:-1:-1])" slice operator"s = "0123456789" print(s[2:-1:-1])" 切片运算符的输出
【发布时间】:2020-03-19 18:44:54
【问题描述】:
s = "0123456789"
print(s[2:-1:-1])

据我说,上述问题的输出应该是“210”,但它什么也没给出 请告诉我怎么做?

【问题讨论】:

  • 这能回答你的问题吗? Python reverse-stride slicing
  • print(s[2::-1])可以给你210。这意味着seq[low::stride] # [seq[low], seq[low+stride], ..., seq[-1] ] 来自here
  • @ggorlen 这不是完全相同的副本,因为它没有说明为什么输出是210
  • 输出不是 210。我认为这是一个有用的链接,即使它没有被关闭。如果我能读到this,我会发表解释。

标签: python-3.x


【解决方案1】:

语法: 序列[开始:停止[:步骤]]

  • 开始:
    • 可选。切片的起始索引。默认为 0。
  • 停止:
    • 可选。切片的最后一个索引或要获取的项目数。默认为 len(序列)。
  • 步骤:
    • 可选。扩展切片语法。切片的步长值。默认为 1。
+---+---+---+---+
|-4 |-3 |-2 |-1 |  <= negative indexes
+---+---+---+---+
| A | B | C | D |  <= sequence elements
+---+---+---+---+
| 0 | 1 | 2 | 3 |  <= positive indexes
+---+---+---+---+
 |<- 2:-1:-1 ->|      <= extent of the slice: "ABCD"[2:-1:-1] (won't work)

说明:

在我的例子中 "ABCD"[2:-1:-1] 如果我们解释它,那么它会说:

  1. 从索引 2 开始。(包括该项目)
  2. 直到索引 -1(排除该项目)这是最后一个项目,如上表所示。
  3. 步长为 -1,这基本上意味着反向。在这里,您与您的顺序相矛盾。所以它什么也不返回。

所以解决方案是"ABCD"[2::-1],因为有人在评论中正确回答。这表示从索引 2 开始,根据此处为 -1 的步骤,一直到结束 beginnig 或 end。

所以你的问题print(s[2::-1])的相同答案将打印210

【讨论】:

  • 我的荣幸! ?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-18
  • 2014-11-10
  • 2015-08-30
  • 2022-06-14
  • 1970-01-01
  • 2020-01-10
相关资源
最近更新 更多