前段时间看到letcode上的元音字母字符串反转的题目,今天来研究一下字符串反转的内容。主要有三种方法:
1.切片法(最简洁的一种)
def reverse1(): s=input("请输入需要反转的内容:") return s[::-1] reverse1() #运行结果 In [23]: def reverse1(): ...: s=input("请输入需要反转的内容:") ...: return s[::-1] ...: reverse1() 请输入需要反转的内容:你是一个小南瓜 Out[23]: '瓜南小个一是你'参考stackflow上的 答案 。
原理是:This is extended slice syntax. It works by doing [begin:end:step] - by leaving begin and end off and specifying a step of -1, it reverses a string.#递归反转 def reverse2(s): if s=="": return s else: return reverse2(s[1:])+s[0] reverse2("sidfmawsmdisd是当面问") #运行结果 In [24]: def reverse2(s): ...: if s=="": ...: return s ...: else: ...: return reverse2(s[1:])+s[0] ...: reverse2("sidfmawsmdisd是当面问") Out[24]: '问面当是dsidmswamfdis'
3.借用列表,使用reverse()方法
Python中自带reverse()函数,可以处理列表的反转,来看示例:
In [25]: l=['a', 'b', 'c', 'd'] ...: l.reverse() ...: print (l) ['d', 'c', 'b', 'a']
reverse()函数将列表的内容进行了反转,借助这个特性,可以先将字符串转换成列表,利用reverse()函数进行反转后,再处理成字符串。
#借用列表,使用reverse()方法 def reverse3(s): l=list(s) l.reverse() print("".join(l)) reverse3("soifmi34pomOsprey,,是") #运行结果 In [26]: def reverse3(s): ...: l=list(s) ...: l.reverse() ...: print("".join(l))