6.1.6 字符串的反转

字符串反转是指把字符串中的最后一个字符移到字符串的第一个位置,按照倒序的方式依次前移。

Python没有提供对字符串进行反转的函数,但是读者可以使用列表和字符串索引来实现字符串的反转,并通过range()进行循环。


01     # 循环输出反转的字符串
02     def reverse(s):
03         out = ""
04         li = list(s)
05         for i in range(len(li), 0, -1):
06             out += "".join(li[i-1])
07         return out

【代码说明】

·第2行代码定义了一个函数reverse(),参数s表示需要反转的字符串。

·第3行代码定义了一个返回变量out,用于存放字符串反转后的结果。

·第4行代码创建了一个列表li,字符串s中的字符成为列表li的元素。

·第5~6行代码从列表中的最后一个元素开始处理,依次连接到变量out中。

·第7行代码返回变量out的值。

函数reverse()的调用形式如下所示。


print (reverse("hello"))

【代码说明】输出reverse()的返回值,结果为“olleh”。

不难发现,Python的字符串反转实现代码更简短,而且更容易理解。用户还可以通过列表的reverse()函数实现字符串的反转,实现的代码将进一步简化。


01     # 使用list的reverse()
02     def reverse(s):
03         li = list(s)
04         li.reverse()
05         s = "".join(li)
06         return s

【代码说明】

·第4行代码调用列表的reverse()实现了for…in…循环的功能。

·第5行代码调用join()把反转后的列表li的元素依次连接到变量s中。

Python的列表是处理字符串的常用方式,灵活使用列表等内置数据结构处理字符串,能够简化编程的复杂度。利用序列的“切片”实现字符串的反转最为简洁,reverse()函数的主体只有一行代码。


01     def reverse(s):
02         return s[::-1]

【代码说明】-1表示从字符串最后一个索引开始倒序排列。