【发布时间】:2019-10-05 07:34:57
【问题描述】:
我想取一个字符串并改变字符串中字母的顺序。
我可以通过以下代码实现:
s = 'Hello World!'
s = s[6:] + s[5:6] + s[:5]
s
这会产生输出:
'World! Hello'
这就是我想要达到的目标。
但是,是否可以以更 Pythonic 的方式编写字符串中元素的重新排列?例如,无需切片和添加,而是以某种方式在重新表述中指定哪个切片“去哪里”。
谢谢!
稍后编辑:
具体来说,我想在单词之间没有空格的情况下实现这一点。例如:
s = 'HelloWorld!'
s = s[5:] + s[:5]
s
这会产生输出:
'World!Hello'
这又是我想要实现的目标,但是我是否可以以更 Python 的方式编写切片和添加行,例如,至少不需要显式执行添加?
注意:我希望能够使用元素的索引显式指定切片发生的位置并切换两个切片的位置。
所以它也可能是:
s = 'HelloWorld!'
s = s[6:] + s[:6]
s
这会产生输出:
'orld!HelloW'
谢谢!
【问题讨论】:
-
@Error-SyntacticalRemorse:嗯,
' '.join(reversed(s.split()))或' '.join(s.split()[::-1]);你不能使用.reverse(),因为这是一个返回None的就地突变。
标签: python python-3.x string slice