使用第二个就位切片在python中交换字符串的成对字符

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

我是Python 3的新手。今天,在使用list阅读有关python反向字符串的知识时,我了解了就地切片技术。代码看起来像这样:

s = input("Enter a string:\n")
''.join([ s[x:x+2][::-1] for x in range(0, len(s), 2) ])

我想知道如何应用第二个就位切片s[x:x+2][::-1]来进行成对字符交换?对于其他语言,使用[something] [something]表示2D数组解释。这是如何反转切片对的?

您能解释一下吗?预先感谢。

python slice reverse
1个回答
0
投票

切片是这样的:

[start:stop:step]

现在,让我们接受您的代码。

s[x:x+2][::-1] for x in range(0, len(s), 2)

s[x:x+2] 

这部分采用从x索引开始直到x + 1索引的字符串。没有反转,只能切片。


[::-1]

这部分从上面获取切片的字符串,然后再次将整个字符串切片[因为没有开始和停止,因此没有整个字符串],但是第三个参数告诉它切片需要采取多少步骤。这里是-1,表示它将取最后一个元素并将其遍历,从而产生反向字符串

PS:尽管如@kaya的注释中所述,您的代码也不会反转字符串。

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