首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Python 实现字符串反转的9种方法[通俗易懂]

Python 实现字符串反转的9种方法[通俗易懂]

作者头像
全栈程序员站长
发布2022-07-23 14:25:27
发布2022-07-23 14:25:27
3.2K0
举报

大家好,又见面了,我是你们的朋友全栈君。

在做leetcode的试题中,做到反转整数,就涉及到字符串反转,为了尽可能可以写出更多的方法,于是写下这篇文章

样例:如 a=’123456789′ 反转成 a=’987654321′

第一种方法:使用字符串切片

代码语言:javascript
复制
>>> a='123456789' 
>>> a = a[::-1]

'987654321'

第二种方法:使用reversed() 可读行好,但速度较慢

代码语言:javascript
复制
>>> ''.join(reversed('123456789'))
'987654321'

封装使用

代码语言:javascript
复制
def reversed_string(a_string):
    return a_string[::-1]

>>> reversed_string('123456789')
'123456789'

注意:

python的str对象中没有内置的反转函数

python字符串相关基础知识:

  1. python中,字符换是不可变,更改字符串不会修改字符串,而是创建一个新的字符串。
  2. 字符串是可切片,切片字符串会以给定的增量从字符串中的一个点(向后或向前)向另一个点提供一个新字符串。它们在下标中采用切片表示法或切片对象:
代码语言:javascript
复制
# 下标通过在大括号中包含冒号来创建切片:
string[start:stop:step]

# 要在大括号外创建切片,您需要创建切片对
slice_obj = slice(start, stop, step)
string[slice_obj]

第三种方法:循环从字符串提取数据,然后进行字符串拼接(慢)

代码语言:javascript
复制
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进行字符串拼接(慢)

代码语言:javascript
复制
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)

第五种方法:使用字符串拼接(慢)

代码语言:javascript
复制
def string_reverse(a_string):
    n = len(a_string)
    x=""
    for i in range(n-1,-1,-1):
        x += test[i]
    return x

第六种方法:使用reduce

代码语言:javascript
复制
reduce(lambda x,y : y+x, a_string)

第七种方法:使用递归(慢)

代码语言:javascript
复制
def rev_string(s): 
    if len(s) == 1:
        return s

    return s[-1] + rev_string(s[:-1])

第八种方法:使用list() 和reverser()配合

代码语言:javascript
复制
a_string='123456789'

def rev_string(a_string):
    l=list(a)
    l.reverse()
    return ''.join(l)

第九种方法:使用栈

代码语言:javascript
复制
def rev_string(a_string):
    l = list(a_string) #模拟全部入栈
    new_string = ""
    while len(l)>0:
        new_string += l.pop() #模拟出栈
    return new_string

参考文章:Reverse a string in Python

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/126655.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年4月8,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档