如何在Python中反向切片字符串?

问题描述 投票:0回答:4

我了解如何正常切片字符串并反转它,但不知道如何同时执行这两个操作。

我们来说吧

message="hi there"

我只想选择“那里”部分并将其反转,因此输出将是“ereht”。

有办法吗?最好只使用“message”变量,但任何其他方式也可以。

python string slice
4个回答
2
投票

您可以将字符串分开,然后将其反转为您想要的部分

rev = message.split()[-1][::-1]

此解决方案也适用于 OP 中给出的示例(归功于 Kelly Bundy):

rev = message[:-6:-1]

1
投票

对于您的具体问题,您可以使用以下内容:

message.split()[-1][::-1]

1
投票

您只需使用 [1] 选择第二个切片,然后使用 [::-1] 反转它

message.split()[1][::-1]


0
投票

Python 切片由三部分组成:开始、结束和步骤。切片采用以下形式:

example_slice = iterable[start:end:step]

要使切片反向运行,请将步长设置为负,交换开始和结束位置,然后将两者都递减。

message="hi there programmers"

sliced_msg = message[3:8]
print(sliced_msg)
reversed_msg = message[::-1] # Reverse only
print(reversed_msg)
sliced_and_reversed_msg = message[7:2:-1] # Slice and reverse
print(sliced_and_reversed_msg)

所有三个部分都很重要:

  1. 将步长设为负值。默认步长值为+1,这意味着切片每次应增加一。使步长为负会翻转方向。

  2. 交换开始和结束。在正向切片中,您需要从第一个值开始并以最后一个值结束。在向后切片中,您需要执行相反的操作,因为您是在相反的方向上移动。

  3. 两者都递减。在前向切片中,起始值是所需的第一个索引,而结束值比最后一个索引多一个。如果你不加修改就交换它们,你会得到一个相差一的错误。

    这里的例外是如果您的旧起始值为 0。在这种情况下,您应该将最终值留空。 (提供“-1”会将结束设置为最后一个索引,这不是您想要的。)

© www.soinside.com 2019 - 2024. All rights reserved.