1.使用字符串切片
>>> s = "python">>> s[::-1]'nohtyp'>>>
2.使用列表的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)-1while i < j:lst[i], lst[j] = lst[j], lst[i]i , j = i + 1, j - 1return "".join(lst) >>> s = 'python'>>> reverseString(s)'nohtyp'>>>
3.使用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 itemsof the sequence in the calculation, and serves as a default when thesequence is empty. >>>
4.使用递归函数
>>> def reverse(s):if s == "":return selse:return reverse(s[1:]) + s[0]>>> reverse('python')'nohtyp'>>>
python中默认的最大递归数:
>>> import sys>>> sys.getrecursionlimit()1000>>>
5.使用栈
>>> def rev(s):lst = list(s) # 转换成listret = ""while len(lst):ret += lst.pop() # 每次弹出最后的元素return ret#Python小白学习交流群:711312441 >>> s = 'python'>>> rev(s)'nohtyp'>>>
6.for循环
>>> def rever(s):ret = ""for i in range(len(s)-1, 0, -1):ret += s[i]return ret >>> s = "python">>> rev(s)'nohtyp'>>>