- 首頁(yè)|
- 網(wǎng)校|
- 焚題庫(kù)|
- APP |
-
微信公眾號(hào)
python中實(shí)現(xiàn)序列逆序的方法
1. range 函數(shù)
2. reversed 函數(shù)
3. 其他方法
1. range 函數(shù)
一般 for 循環(huán)中總會(huì)用到 range 函數(shù)來(lái)進(jìn)行順序遍歷,同樣的,range 也能表示序列的逆序。
在 range(start, end, step) 中,start 表示序列的起始索引(默認(rèn)為0),end 表示終止索引,step 表示移動(dòng)步長(zhǎng)(默認(rèn)為1)。由于 range 函數(shù)是“顧頭不顧尾” 的形式,因此實(shí)際上其遍歷的索引終止位置是 end 的前一個(gè)索引。
比如:
list(range(5)) = [0, 1, 2, 3, 4]
list(range(1, 5)) = [1, 2, 3, 4]
list(range(1, 5, 1)) = [1, 2, 3, 4]
list(range(1, 5, 2)) = [1, 3]
同理,逆序遍歷只需將步長(zhǎng) step 設(shè)為負(fù)值即可。
比如:
list(range(5, 1, -1)) = [5, 4, 3, 2]
list(range(5, -2, 2)) = [5, 3, 1, -1]
這樣,在 for 循環(huán)中既可以實(shí)現(xiàn)順序遍歷,也可以進(jìn)行逆序遍歷。
2. reversed 函數(shù)
在 python3 中,reversed 函數(shù)也能夠逆轉(zhuǎn)列表。
其實(shí),在 python2.7 中就存在內(nèi)置函數(shù) reverse 可以用來(lái)翻轉(zhuǎn)列表,不過(guò)在 python3 中已經(jīng)刪去該函數(shù)。
相比于 reverse 函數(shù)只能反轉(zhuǎn)列表,reversed 函數(shù)則可以翻轉(zhuǎn)多種序列,包括tuple、list、string、range等類(lèi)型。
由于 reversed 函數(shù)實(shí)際上是一個(gè)類(lèi),因此其直接輸出的是對(duì)應(yīng)序列值反轉(zhuǎn)后的迭代器,需要由對(duì)應(yīng)類(lèi)型的方法獲取反轉(zhuǎn)后的值。
比如:
# 列表反轉(zhuǎn)
a = [1, 2, 3, 4, 5]
print(reversed(a)) # 輸出:
print(list(reversed(a))) # 輸出:[5, 4, 3, 2, 1]
# 元組反轉(zhuǎn)
a = (1, 2, 3, 4, 5)
print(reversed(a)) # 輸出:
print(tuple(reversed(a))) # 輸出:(5, 4, 3, 2, 1)
# 字符串反轉(zhuǎn)
a = '12345'
print(reversed(a)) # 輸出:
print(str(reversed(a))) # 輸出:
print("".join(reversed(a))) # 輸出:54321
注意:
list、tuple、range 類(lèi)型均可相互轉(zhuǎn)換,但str類(lèi)型不同;
str類(lèi)型反轉(zhuǎn)序列輸出采用"".join(reversed(string)))方法,即將反轉(zhuǎn)序列按順序添加進(jìn)新的字符串序列中。
不過(guò),reversed 函數(shù)只能對(duì)已有序列做完全反轉(zhuǎn),若只是想對(duì)序列其中一部分進(jìn)行反轉(zhuǎn),需要先截取對(duì)應(yīng)序列再反轉(zhuǎn),也可以用 range 函數(shù)遍歷所需部分序列。
3. 其他方法
除了以上兩種方法外,對(duì)于字符串序列,還可以用切片反轉(zhuǎn)方法進(jìn)行反轉(zhuǎn)。
比如:
a = 'hello world'
print("".join(reversed(a))) # 輸出:dlrow olleh
print(a[::-1]) # 輸出:dlrow olleh
print(a[::-2]) # 輸出:drwolh
如今python編程語(yǔ)言市場(chǎng)需求大,薪資待遇上萬(wàn)盡在咫尺!如果你也想學(xué)習(xí)python技術(shù)可以填寫(xiě)下面表單,Python學(xué)習(xí)資料限時(shí)免費(fèi)領(lǐng)!
初級(jí)會(huì)計(jì)職稱(chēng)中級(jí)會(huì)計(jì)職稱(chēng)經(jīng)濟(jì)師注冊(cè)會(huì)計(jì)師證券從業(yè)銀行從業(yè)會(huì)計(jì)實(shí)操統(tǒng)計(jì)師審計(jì)師高級(jí)會(huì)計(jì)師基金從業(yè)資格稅務(wù)師資產(chǎn)評(píng)估師國(guó)際內(nèi)審師ACCA/CAT價(jià)格鑒證師統(tǒng)計(jì)資格從業(yè)
一級(jí)建造師二級(jí)建造師消防工程師造價(jià)工程師土建職稱(chēng)房地產(chǎn)經(jīng)紀(jì)人公路檢測(cè)工程師建筑八大員注冊(cè)建筑師二級(jí)造價(jià)師監(jiān)理工程師咨詢(xún)工程師房地產(chǎn)估價(jià)師 城鄉(xiāng)規(guī)劃師結(jié)構(gòu)工程師巖土工程師安全工程師設(shè)備監(jiān)理師環(huán)境影響評(píng)價(jià)土地登記代理公路造價(jià)師公路監(jiān)理師化工工程師暖通工程師給排水工程師計(jì)量工程師
人力資源考試教師資格考試出版專(zhuān)業(yè)資格健康管理師導(dǎo)游考試社會(huì)工作者司法考試職稱(chēng)計(jì)算機(jī)營(yíng)養(yǎng)師心理咨詢(xún)師育嬰師事業(yè)單位教師招聘公務(wù)員公選考試招警考試選調(diào)生村官
執(zhí)業(yè)藥師執(zhí)業(yè)醫(yī)師衛(wèi)生資格考試衛(wèi)生高級(jí)職稱(chēng)護(hù)士資格證初級(jí)護(hù)師主管護(hù)師住院醫(yī)師臨床執(zhí)業(yè)醫(yī)師臨床助理醫(yī)師中醫(yī)執(zhí)業(yè)醫(yī)師中醫(yī)助理醫(yī)師中西醫(yī)醫(yī)師中西醫(yī)助理口腔執(zhí)業(yè)醫(yī)師口腔助理醫(yī)師公共衛(wèi)生醫(yī)師公衛(wèi)助理醫(yī)師實(shí)踐技能內(nèi)科主治醫(yī)師外科主治醫(yī)師中醫(yī)內(nèi)科主治兒科主治醫(yī)師婦產(chǎn)科醫(yī)師西藥士/師中藥士/師臨床檢驗(yàn)技師臨床醫(yī)學(xué)理論中醫(yī)理論