Python實(shí)現(xiàn)字符串反轉(zhuǎn)的9種方法(最全)
樣例:如 a='123456789' 反轉(zhuǎn)成 a='987654321'
第一種方法:使用字符串切片(簡(jiǎn)單好用)
a = '123456789' print(a[::-1])
運(yùn)行結(jié)果:987654321
第二種方法:使用reversed() 可讀行好,但速度較慢
print(''.join(reversed('123456789')))
運(yùn)行結(jié)果:987654321
封裝使用:
def reversed_string(a_string): return a_string[::-1] print(reversed_string('123456789'))
運(yùn)行結(jié)果:987654321
注意:
python的str對(duì)象中沒(méi)有內(nèi)置的反轉(zhuǎn)函數(shù)
python字符串相關(guān)基礎(chǔ)知識(shí):
python中,字符換是不可變,更改字符串不會(huì)修改字符串,而是創(chuàng)建一個(gè)新的字符串。
字符串是可切片,切片字符串會(huì)以給定的增量從字符串中的一個(gè)點(diǎn)(向后或向前)向另一個(gè)點(diǎn)提供一個(gè)新字符串。它們?cè)谙聵?biāo)中采用切片表示法或切片對(duì)象:
# 下標(biāo)通過(guò)在大括號(hào)中包含冒號(hào)來(lái)創(chuàng)建切片: string[start:stop:step] # 要在大括號(hào)外創(chuàng)建切片,您需要?jiǎng)?chuàng)建切片對(duì) slice_obj = slice(start, stop, step) string[slice_obj]
第三種方法:循環(huán)從字符串提取數(shù)據(jù),然后進(jìn)行字符串拼接(慢)
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
第四種方法:循環(huán)從字符串提取數(shù)據(jù),寫(xiě)入到一個(gè)空列表中,然后使用join進(jìn)行字符串拼接(慢)
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
到此這篇關(guān)于Python實(shí)現(xiàn)字符串反轉(zhuǎn)的9種方法(最全)的文章就介紹到這了,更多相關(guān)Python 字符串反轉(zhuǎn)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python+selenium 腳本實(shí)現(xiàn)每天自動(dòng)登記的思路詳解
這篇文章主要介紹了python+selenium 腳本實(shí)現(xiàn)每天自動(dòng)登記,本文你給大家分享基本的思路,通過(guò)實(shí)例代碼截圖的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-03-03Python高級(jí)應(yīng)用實(shí)例對(duì)比:高效計(jì)算大文件中的最長(zhǎng)行的長(zhǎng)度
在操作某個(gè)很多進(jìn)程都要頻繁用到的大文件的時(shí)候,應(yīng)該盡早釋放文件資源(f.close()),只有這樣才能算是一則高效率的代碼,下面我們就來(lái)分析下這3種方法的優(yōu)劣2014-06-06Python?Dash框架在數(shù)據(jù)可視化儀表板中的應(yīng)用與實(shí)踐記錄
Python的Plotly?Dash庫(kù)提供了一種簡(jiǎn)便且強(qiáng)大的方式來(lái)構(gòu)建和展示互動(dòng)式數(shù)據(jù)儀表板,本篇文章將深入探討如何使用Dash設(shè)計(jì)一個(gè)互動(dòng)數(shù)據(jù)儀表板,并通過(guò)代碼示例幫助讀者理解如何實(shí)現(xiàn)這一過(guò)程,感興趣的朋友一起看看吧2025-03-03pandas分組聚合(agg,transform,apply)
在SQL中我們經(jīng)常使用 GROUP BY 將某個(gè)字段,按不同的取值進(jìn)行分組, 在pandas中也有g(shù)roupby函數(shù),本文主要介紹了pandas分組聚合(agg,transform,apply),具有一定的參考價(jià)值,感興趣的可以了解一下2024-04-04Numpy之random函數(shù)使用學(xué)習(xí)
這篇文章主要介紹了Numpy之random使用學(xué)習(xí),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-01-01pytorch中的model=model.to(device)使用說(shuō)明
這篇文章主要介紹了pytorch中的model=model.to(device)使用說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-05-05Django中更新多個(gè)對(duì)象數(shù)據(jù)與刪除對(duì)象的方法
這篇文章主要介紹了Django中更新多個(gè)對(duì)象數(shù)據(jù)與刪除對(duì)象的方法,Django是Python重多各色框架中人氣最高的一個(gè),需要的朋友可以參考下2015-07-07python3 使用OpenCV計(jì)算滑塊拼圖驗(yàn)證碼缺口位置(場(chǎng)景示例)
這篇文章主要介紹了python3 使用OpenCV計(jì)算滑塊拼圖驗(yàn)證碼缺口位置,本文通過(guò)場(chǎng)景示例給大家詳細(xì)介紹,對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-08-08