如何在 Python 程序中反转字符串?
Python 没有内置函数来反转字符串。因此,我们需要实现自己的逻辑来反转字符串。
我们将使用不同的方法反转字符串。
使用 FOR 循环
此方法背后的想法是使用从字符串的最后一个索引开始到第 0 个索引的反向循环。在每次迭代中,我们将添加字符串的字符以在迭代结束时保存反转的字符串。
让我们看看我们将遵循的一般程序−
a:=new string
从字符串的最后一个索引循环到第 0 个索引,并在当前索引处减 1 a=a+character
返回 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 到字符串长度的正常循环,而不是 for each 循环。
示例
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
使用扩展切片语法
扩展切片语法有三个参数,[starts,end,step]。默认情况下,不提供任何字段作为 start 和 end 意味着 0 作为 start,字符串长度作为 end。将 step 指定为 ‘-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 中反转字符串的所有方法中,它给出的结果最快。这种方法非常容易实现,因为它只有一行代码,我们不需要实现任何逻辑。