如何在一个 Python 程序中反转字符串?
Python 没有反转字符串的内置函数。因此,我们需要实现自己的逻辑才能反转一个字符串。
我们将使用不同的方法来反转字符串。
使用 FOR 循环
此方法背后的思想是使用一个从字符串的最后一个索引到第 0 个索引的反向循环。在每个迭代中,我们将字符串的字符添加到在迭代结束时保存反转字符串中。
让我们看一下我们将遵循的一般流程 -
a:=new string
从字符串的最后一个索引循环到第 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))
输出
INPUT : TutorialsPoint OUTPUT : tnioPslairotuT
对上述方法的详细实现如下 -
在这里,我们使用 for each 循环并将每个字符附加到新字符串的开头。
将新字符串的每个字符附加给我们反转后的字符串。除了 for each 循环,我们可以使用从索引 0 到字符串长度的正常循环。
示例
def reverse(s): a="" for i in s: a=i+a return a string="TutorialsPoint" print(reverse(string))
输出
INPUT : TutorialsPoint OUTPUT : tnioPslairotuT
使用 While 循环
我们可以用 while 循环替换 for 循环。我们将从最后一个索引迭代到第 0 个索引,并将当前索引处的每个字符串联至新字符串的末尾以获得反转后的字符串。
示例
def reverse(s): a="" i=len(s)-1 while(i>=0): a=a+s[i] i-=1 return a string="TutorialsPoint" print(reverse(string))
输出
INPUT : TutorialsPoint OUTPUT : tnioPslairotuT
使用扩展切片语法
扩展切片语法有三个参数,[开始,结束,步长]。如果没有将任何字段指定为开始和结束,则默认意味着 0 为开始,字符串长度为结束。将步长指定为“-1”意味着从末尾开始并停止在开始处。因此,我们得到了反转后的字符串。
示例
def reverse(s): a=s[::-1] return a string="TutorialsPoint" print(reverse(string)) Using join and reversed()
输出
INPUT : TutorialsPoint OUTPUT : tnioPslairotuT
我们可以使用 reversed() 反转函数。但反转函数返回反转后的迭代器。因此,我们需要连接反转后的迭代器的字符以获得一个字符串。
使用连接和 reversed()
示例
def reverse(s): a="".join(reversed(s)) return a string="TutorialsPoint" print(reverse(string))
输出
INPUT : TutorialsPoint OUTPUT : 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))
输出
INPUT : TutorialsPoint OUTPUT : tnioPslairotuT
这些是在 Python 中反转字符串的一些方法。我们讨论了在 Python 中反转字符串的五种不同方法。
什么是最快、最好的使用方式?
用于反转字符串的最快速、最好的方法是使用切片(方法 3)。在所有在 Python 中反转字符串的方法中,它提供了最快的结果。此方法非常容易实现,因为它只有一行代码,我们不需要从我们的角度实现任何逻辑。