Python实现字符串反转的方法
2020-12-13 05:46
标签:enc sys lse 元素 argument turn 直接 app cal reduce 函数帮助: python中默认的最大递归数: Python实现字符串反转的方法 标签:enc sys lse 元素 argument turn 直接 app cal 原文地址:https://www.cnblogs.com/51try-again/p/11148515.html第一种:使用字符串切片
>>> 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 >> s = ‘python‘
>>> reverseString(s)
‘nohtyp‘
>>>
第三种:使用reduce
>>> from functools import reduce # Python3 中不可以直接调用reduce
>>> s = "python"
>>> reduce(lambda x, y: y+x, s)
‘nohtyp‘
>>>
>>> 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‘
>>>
>>> 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‘
>>>