字符串反转python_Python实现字符串反转的方法

第一种:使用字符串切片

>>> s = "python"

>>> s[::-1]

'nohtyp'

>>>

第二种:使用列表的reverse方法

>>> s = "python"

>>> lst = list(s)

>>> lst.reverse()

>>> "".join(lst)

'nohtyp'

>>>

手写 reverse

>>> def reverseString(s:str) -> str:

lst = list(s)

i, j = 0, len(s)-1

while i < j:

lst[i], lst[j] = lst[j], lst[i]

i , j = i + 1, j - 1

return "".join(lst)

>>> s = 'python'

>>> reverseString(s)

'nohtyp'

>>>

第三种:使用reduce

>>> from functools import reduce # Python3 中不可以直接调用reduce

>>> s = "python"

>>> reduce(lambda x, y: y+x, s)

'nohtyp'

>>>

reduce 函数帮助:

>>> help(reduce)

Help on built-in function reduce in module _functools:

reduce(...)

reduce(function, sequence[, initial]) -> value

Apply a function of two arguments cumulatively to the items of a sequence,

from left to right, so as to reduce the sequence to a single value.

For example, reduce(lambda x, y: x+y, [1, 2, 3, 4, 5]) calculates

((((1+2)+3)+4)+5). If initial is present, it is placed before the items

of the sequence in the calculation, and serves as a default when the

sequence is empty.

>>>

第四种:使用递归函数

>>> def reverse(s):

if s == "":

return s

else:

return reverse(s[1:]) + s[0]

>>> reverse('python')

'nohtyp'

>>>

python中默认的最大递归数:

>>> import sys

>>> sys.getrecursionlimit()

1000

>>>

第五种:使用栈

>>> def rev(s):

lst = list(s) # 转换成list

ret = ""

while len(lst):

ret += lst.pop() # 每次弹出最后的元素

return ret

>>> s = 'python'

>>> rev(s)

'nohtyp'

>>>

第六种:for循环

>>> def rever(s):

ret = ""

for i in range(len(s)-1, 0, -1):

ret += s[i]

return ret

>>> s = "python"

>>> rev(s)

'nohtyp'

>>>

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值