• 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'
    >>> 
    

      

  • 相关阅读:
    CentOS 8上安装MySQL 8.0
    centos8安装redis
    virtualbox虚拟机ubuntu18.04网络配置--虚拟机和宿主机互通且联网
    Controller同时接收MultipartFile数据和json数据
    日期转换
    Python的Mysql操作
    Go语言学习笔记十三: Map集合
    Go语言学习笔记十二: 范围(Range)
    Go语言学习笔记十一: 切片(slice)
    Go语言学习笔记十: 结构体
  • 原文地址:https://www.cnblogs.com/51try-again/p/11148515.html
Copyright © 2020-2023  润新知