码迷,mamicode.com
首页 > 编程语言 > 详细

Python实现字符串反转的方法

时间:2019-07-08 00:14:17      阅读:211      评论:0      收藏:0      [点我收藏+]

标签:enc   sys   lse   元素   argument   turn   直接   app   cal   

第一种:使用字符串切片

>>> 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‘
>>> 

  

Python实现字符串反转的方法

标签:enc   sys   lse   元素   argument   turn   直接   app   cal   

原文地址:https://www.cnblogs.com/51try-again/p/11148515.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!