首页> python> python编程基础> 文章内容
如何使用Python实现字符串反转?
来源 :中华考试网 2020-09-30
中
在Python中如何做到字符串反转,有几种方法呢?
样例:如 a='123456789' 反转成 a='987654321'
第一种方法:使用字符串切片
>>> a='123456789'
>>> a = a[::-1]
'987654321'
python课程免费试听预约
- 地区:
- 北京
- 天津
- 上海
- 江苏
- 浙江
- 山东
- 江西
- 安徽
- 广东
- 广西
- 海南
- 辽宁
- 吉林
- 黑龙江
- 内蒙古
- 山西
- 福建
- 河南
- 河北
- 湖南
- 湖北
- 四川
- 重庆
- 云南
- 贵州
- 新疆
- 西藏
- 陕西
- 青海
- 宁夏
- 甘肃
- 姓名:
- 手机:
第二种方法:使用reversed() 可读行好,但速度较慢
>>> ''.join(reversed('123456789'))
'987654321'
# 封装使用
reversed_string(a_string):
return a_string[::-1]
>>> reversed_string('123456789')
'123456789'
注意:
python的str对象中没有内置的反转函数
python字符串相关基础知识:
python中,字符换是不可变,更改字符串不会修改字符串,而是创建一个新的字符串。
字符串是可切片,切片字符串会以给定的增量从字符串中的一个点(向后或向前)向另一个点提供一个新字符串。它们在下标中采用切片表示法或切片对象:
# 下标通过在大括号中包含冒号来创建切片:
string[start:stop:step]
# 要在大括号外创建切片,您需要创建切片对
slice_obj = slice(start, stop, step)
string[slice_obj]
第三种方法:循环从字符串提取数据,然后进行字符串拼接(慢)****
def reverse_a_string_slowly(a_string):
new_string = ''
index = len(a_string)
while index:
index -= 1 # index = index - 1
new_string += a_string[index] # new_string = new_string + character
return new_string
第四种方法:循环从字符串提取数据,写入到一个空列表中,然后使用join进行字符串拼接**(慢)******
def reverse_a_string_more_slowly(a_string):
new_strings = []
index = len(a_string)
while index:
index -= 1
new_strings.append(a_string[index])
return ''.join(new_strings)
第五种方法:使用字符串拼接(慢)
def string_reverse(a_string):
n = len(a_string)
x=""
for i in range(n-1,-1,-1):
x += test[i]
return x
第六种方法:使用reduce
reduce(lambda x,y : y+x, a_string)
第七种方法:使用递归(慢)****
def rev_string(s):
if len(s) == 1:
return s
return s[-1] + rev_string(s[:-1])
第八种方法:使用list() 和reverser()配合
a_string='123456789'
def rev_string(a_string):
l=list(a)
l.reverse()
return ''.join(l)
第九种方法:使用栈
def rev_string(a_string):
l = list(a_string) #模拟全部入栈
new_string = ""
while len(l)>0:
new_string += l.pop() #模拟出栈
return new_string