我正在使用 python 2.7,我正试图找到解决这个问题的方法, 当我从某个函数得到一个字符串时 我需要在第一个和最后一个字符之间切换。 例如,如果字符串是“hello”,它应该返回为“oellh” 切片不起作用,我不能像通常那样替换字符,因为我不知道字符串将是什么或将有多长。我考虑过用位置 -1 的字符替换位置 0 的字符 但我找不到能让我做到这一点的东西。 有人有什么建议吗?
请您参考如下方法:
s[-1] + s[1:-1] + s[0] if len(s) > 1 else s
这将交换除 '' 和 'a'(单个字符)的边缘情况之外的所有内容。
下面的代码片段将字符串分成三个 block 。末尾的 block 交换第一个和最后一个字母,而中间的 block 捕获字符串的中间部分。
s[-1] + s[1:-1] + s[0]
# Below, I show each chunk in the interpreter.
>>> s = 'hello'
>>> s[-1]
'o'
>>> s[1:-1]
'ell'
>>> s[0]
'h'
由于索引错误以及没有理由交换长度为 1 的字符串这一事实,您不能将长度小于 2 的字符串切分。这就是 if .. else 所防止的。如果您不了解 if .. else 的工作原理,请阅读下面的代码片段。
# This returns expr1 if expr2 is true, otherwise it returns expr3
a = expr1 if expr2 else expr3
# The above expression is the short hand of...
if expr2:
a = expr1
else:
a = expr3
我希望这是有道理的。
