Python字符串反转的3种方法

前段时间看到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.

2.递归
#递归反转
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))
    ...: 
    ...: reverse3("soifmi34pomOsprey,,是")
    ...: 
是,,yerpsOmop43imfios

今天的学习就到这里。贴上letcode上元音字母反转的地址,待后续研究。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容