Skip to main content
 首页 » 编程设计

python之如何在 2 个字符之间切换

2025年05月04日15jirigala

我正在使用 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 

我希望这是有道理的。