本文目录导读:

我来介绍几种Python字符串反转的方法:
最简洁方法:切片反转
# 使用切片步长-1 text = "Hello, World!" reversed_text = text[::-1] print(reversed_text) # 输出: !dlroW ,olleH
使用reversed()函数
text = "Python" reversed_text = ''.join(reversed(text)) print(reversed_text) # 输出: nohtyP
循环遍历方法
# 方法一:从后往前遍历
text = "编程语言"
result = ""
for char in text:
result = char + result
print(result) # 输出: 言语程编
# 方法二:使用索引
text = "Hello"
result = ""
for i in range(len(text)-1, -1, -1):
result += text[i]
print(result) # 输出: olleH
使用list反转
text = "Python编程" # 转为列表后反转 char_list = list(text) char_list.reverse() reversed_text = ''.join(char_list) print(reversed_text) # 输出: 程编nohtyP
使用栈(列表模拟)
text = "Hello, World!"
stack = list(text) # 将字符串转为列表
result = ""
while stack:
result += stack.pop()
print(result) # 输出: !dlroW ,olleH
递归方法
def reverse_string(s):
if len(s) <= 1:
return s
return reverse_string(s[1:]) + s[0]
text = "Python"
print(reverse_string(text)) # 输出: nohtyP
实用案例:判断回文字符串
def is_palindrome(s):
# 移除空格和标点,转为小写
cleaned = ''.join(c.lower() for c in s if c.isalnum())
return cleaned == cleaned[::-1]
# 测试
text1 = "A man, a plan, a canal: Panama"
text2 = "Hello"
print(is_palindrome(text1)) # 输出: True
print(is_palindrome(text2)) # 输出: False
性能比较
import time
text = "Hello, World!" * 1000
# 测试不同方法的性能
start = time.time()
result = text[::-1]
print(f"切片方法: {time.time() - start:.6f}秒")
start = time.time()
result = ''.join(reversed(text))
print(f"reversed方法: {time.time() - start:.6f}秒")
推荐使用
- 日常使用:
text[::-1](最简洁、性能最好) - 需要保留原字符串:
''.join(reversed(text)) - 学习理解:循环或递归方法
切片反转是最推荐的方式,它简洁且执行效率高。