如何在Python程序中反转一个字符串?
Python没有内置的反转字符串的函数。因此,我们需要实现自己的逻辑来反转一个字符串。
我们将使用不同的方法来反转一个字符串。
阅读更多:Python 教程
使用FOR循环:
这种方法的背后思想是使用一个逆循环,从字符串的最后一个索引开始到第0个索引。在每次迭代时,我们将字符串的字符添加到最终迭代的反向字符串中。
让我们看看我们将要遵循的一般过程 −
- a:=新字符串
-
从字符串的最后索引到第0个索引进行循环,并递减1 a=a+当前索引处的字符
-
返回a
示例
def reverse(s):
a=""
last_index=len(s)-1
for i in range(last_index,-1,-1):
a=a+s[i]
return a
string="TutorialsPoint"
print(reverse(string))
输出
输入:TutorialsPoint
输出:tnioPslairotuT
上述方法的智能实现如下 −
在这里,我们使用 for each 循环,并将每个字符添加到新字符串的开头。
将新字符串的每个字符附加到我们反转的字符串中。我们可以使用普通的循环从索引0到字符串的长度,而不是使用为每个循环。
示例
def reverse(s):
a=""
for i in s:
a=i+a
return a
string="TutorialsPoint"
print(reverse(string))
输出
输入:TutorialsPoint
输出:tnioPslairotuT
使用While循环:
我们可以使用while循环替换for循环。我们将从最后一个索引到第0索引迭代while循环,并将当前索引处的每个字符连接到新字符串的末尾以获得反转的字符串。
示例
def reverse(s):
a=""
i=len(s)-1
while(i>=0):
a=a+s[i]
i-=1
return a
string="TutorialsPoint"
print(reverse(string))
输出
输入:TutorialsPoint
输出:tnioPslairotuT
使用扩展切片语法:
扩展切片语法有三个参数,[start,end,step]。默认情况下,不指定任何字段作为起始和结束,默认值为0作为起始和字符串长度作为结束。将步长指定为“-1”表示从结尾开始并停止到开头。因此,我们获得了反转的字符串。
示例
def reverse(s):
a=s[::-1]
return a
string="TutorialsPoint"
print(reverse(string))
Using join and reversed()
输出
输入:TutorialsPoint
输出:tnioPslairotuT
我们可以使用reversed()来反转函数。但是,reverse函数返回反转的迭代器。因此,我们需要连接反转迭代器的字符以获取字符串。
使用join和reversed()
示例
def reverse(s):
a="".join(reversed(s))
return a
string="TutorialsPoint"
print(reverse(string))
输出
输入:TutorialsPoint
输出:tnioPslairotuT
使用递归
我们可以使用递归来反转一个字符串。我们将递归调用反转函数,传递字符串从索引1到最后。因此,我们将不断缩短字符串长度,直到基本情况为0,返回字符串。因此,在每次递归调用时,我们从索引1到最后切片字符串,并将第一个字符连接到切片字符串的末尾。
例子
def reverse(s):
if(len(s)==0):
return s
else:
return reverse(s[1:])+s[0]
string="TutorialsPoint"
print(reverse(string))
输出
输入:TutorialsPoint
输出:tnioPslairotuT
这些是在Python中反转字符串的方法之一。我们讨论了五种不同的方法来在Python中反转字符串。
哪种方法是最快和最好的方法?
反转字符串的最快且最好的方法是使用切片(方法3)。它在所有反转Python字符串的方法中提供最快的结果。这种方法非常容易实现,因为它只有1行代码,我们不需要实现任何逻辑。