如何在python中替换字符串的前后

如何在python中替换字符串的前后,python,Python,给定一个字符串,返回一个交换了第一个和最后一个字符的新字符串 front_back('code') → 'eodc' front_back('a') → 'a' front_back('ab') → 'ba' 如何解决此问题?尝试使用索引交换: a = 'code' b = list(a) b[0], b[-1] = b[-1], b[0] print(''.join(b)) 如果字符串可能为空,请使用: a = 'code' if a: b = list(a) b[0],

给定一个字符串,返回一个交换了第一个和最后一个字符的新字符串

front_back('code') → 'eodc'
front_back('a') → 'a'
front_back('ab') → 'ba'

如何解决此问题?

尝试使用索引交换:

a = 'code'
b = list(a)
b[0], b[-1] = b[-1], b[0]
print(''.join(b))
如果字符串可能为空,请使用:

a = 'code'
if a:
    b = list(a)
    b[0], b[-1] = b[-1], b[0]
    print(''.join(b))
else:
    print(a)
我们到了

def front_back(val):
    if len(val) <= 1:
        return val

    return val[-1] + val[1:-1] + val[0]


print(front_back('code'))
print(front_back('a'))
print(front_back('ab'))
试试这个-

def front_back(s):
     if len(s) < 2:
         return s
     return s[-1] + s[1:-1] + s[0]

可以使用切片执行此操作:

def swapfirstlast(x):
   if len(x) == 1:
      return x
   else:
     return x[-1:] + x[1:-1] + x[:1]

In [3532]: swapfirstlast('a')                                                                                                                                                                  
Out[3532]: 'a'

In [3533]: swapfirstlast('code')                                                                                                                                                               
Out[3533]: 'eodc'

In [3534]: swapfirstlast('ab')                                                                                                                                                                 
Out[3534]: 'ba'



字符串
s
的第一个字符是
s[0]
,最后一个字符是
s[-1]
。中间的字符是介于两者之间的片段:<代码> s(1:-1)< /代码>。因此,我们可以通过按正确顺序连接这三个部分来构建字符串:

>s='code'
>>>s[-1]+s[1:-1]+s[0]
“eodc”
请注意,对于只有一个字符的字符串,这将给出奇怪的结果,对于空字符串,这将完全失败;如果len(s)>=2,您可以编写
,以预先检查,并使用
else:
以不同方式处理过短的字符串

def交换:
如果len>=2:
返回s[-1]+s[1:-1]+s[0]
其他:
返回s

@Chris:不,OP只想用最后一个字符替换第一个字符,中间的字符保持不变。它不是重复的(尽管它很琐碎,并且应该可以对链接进行反向工程以仅回答此子问题)。OP,请说明您尝试了什么,以及您在执行任务时遇到了什么具体障碍,因为这应该是基本Python。请尝试使用
'a'
。我没有否决投票,但可能是因为这会给空字符串带来错误。我测试了这三种情况,并且都有效(从中学会了字符串操作,这是一个很好的答案)。@kaya3编辑了我的
>>> front_back('a')
'a'
>>> front_back('ab')
'ba'
>>> front_back('code')
'eodc'
def swapfirstlast(x):
   if len(x) == 1:
      return x
   else:
     return x[-1:] + x[1:-1] + x[:1]

In [3532]: swapfirstlast('a')                                                                                                                                                                  
Out[3532]: 'a'

In [3533]: swapfirstlast('code')                                                                                                                                                               
Out[3533]: 'eodc'

In [3534]: swapfirstlast('ab')                                                                                                                                                                 
Out[3534]: 'ba'