Python 中如何反转一个字符串?

Python 反转字符串最简洁的方法是切片 s[::-1]。也可用 reversed() 配合 join。本文介绍两种方法及 Unicode 注意事项。

最佳实践
Python 中如何反转一个字符串?封面

最简洁的写法:切片 s[::-1]——步长为 -1 表示从后往前取。"hello"[::-1] 得到 "olleh"

方法一:切片(推荐)

original = "hello"
reversed_str = original[::-1]
print(reversed_str)  # "olleh"

切片 [start:stop:step] 中 step 为 -1 即倒序遍历。列表、元组等序列类型同样适用。

方法二:reversed() + join()

reversed_str = "".join(reversed("hello"))
print(reversed_str)  # "olleh"

reversed() 返回反向迭代器,join 把字符拼回字符串。代码更"显式",但不如切片简洁。

性能对比

切片略快(底层一次内存拷贝),日常使用中差异可忽略。不推荐用 for 循环逐个字符拼接——Python 字符串不可变,循环拼接是 O(n²)。

Unicode 注意事项

对包含组合字符(如带声调符号的字母、某些 emoji)的文本,简单反转可能把组合字符拆开。日常中英文、普通中文文本没这个问题;需要处理复杂文本时可以用第三方库 grapheme 按字素簇反转。

常见问题(FAQ)

Q:反转列表用什么?
A:同样可以用 lst[::-1](返回新列表);想原地反转用 lst.reverse()reversed(lst) 返回迭代器。

Q:反转后还能反转回来吗?
A:可以,s[::-1][::-1] == s 恒成立。

Q:如何只反转单词顺序而不是字符?
A:' '.join(s.split()[::-1]),先按空格分词,反转单词列表再拼接。

获取专属方案

联系我们

加入社区

微信扫码
加入官方交流群

立即体验

在线开通,按量计费,真正的云服务!

立即开始

选择观测云版本

代码托管平台