name = "Hello there, my name is Daniel Fu and I`m 33 years old."print(name[4]) # 字母o(hello的最后一個(gè)字母),從左至右第5個(gè)字母(因?yàn)閕ndex是從0開始)print(name[-3]) # 字母l(old中的l),index為負(fù)數(shù)表示從右至左第三個(gè)字母(-0和0沒有區(qū)別,因此負(fù)index是從-1開始的)print(name[6:11]) # 結(jié)果為"there", 即從index6開始,到index11結(jié)束(但不包含11)的所有內(nèi)容print(name[:5]) # 結(jié)果為"Hello",省略起始值,則表示從0開始print(name[45:]) # 結(jié)果為"years old.", 省略終止值表示從index45開始,直至字符串結(jié)束的所有內(nèi)容print(name[:]) # 省略起止值,即返回整個(gè)字符串print(name[::5]) # 結(jié)果為"H e a nmy ",第三個(gè)參數(shù)表示結(jié)果中每隔N(此例為5)個(gè)字母返回一個(gè)print(name[::-2]) # 結(jié)果為".l re 3mIdau enDs mny eetolH",表示將字符串反轉(zhuǎn)之后,每隔N(此例為2)個(gè)字母返回一個(gè)
創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比卓尼網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式卓尼網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋卓尼地區(qū)。費(fèi)用合理售后完善,10多年實(shí)體公司更值得信賴。
[::-1]實(shí)現(xiàn)翻轉(zhuǎn)功能。
Python 的切片功能實(shí)際上比很多程序員認(rèn)為的更強(qiáng)大。
a = m [ 0 : 100 : 10 ] # 帶步進(jìn)的切片(步進(jìn)值=10)
注意:步進(jìn)值為step
當(dāng)step 0 時(shí)
切片從 start(含start)處開始,到end(不含end)處結(jié)束,**從左往右**,每隔(step-1)(索引之間的差仍為step,但相隔的元素是step-1個(gè))個(gè)元素進(jìn)行一次截取。
這時(shí),start 指向的位置應(yīng)該在end指向的位置的左邊,否則返回值為空
當(dāng)step 0 時(shí)
切片從 start(含start)處開始,到end(不含end)處結(jié)束,**從右往左**,每隔(step-1)(索引之間的差仍為step,但相隔的元素是step-1個(gè))個(gè)元素進(jìn)行一次截取。
這時(shí),start 指向的位置應(yīng)該在end指向的位置的右邊,否則返回值為空
可以把整數(shù)序列轉(zhuǎn)成list,再用reverse()翻轉(zhuǎn),再轉(zhuǎn)成整型
代碼
運(yùn)行結(jié)果:
運(yùn)行結(jié)果
s.sort([cmp[,?key[,?reverse]]])
意思是sort方法接受三個(gè)參數(shù),都可以省略,默認(rèn)是升序排序。
第一個(gè)參數(shù)cmp 是 比較函數(shù),兩個(gè)參數(shù)(列表的元素)怎樣比較,對于整數(shù)這種內(nèi)置類型的比較,方法很直觀,但是對于自定義類型的比較,就要自己定義比較函數(shù)了,函數(shù)返回 0 ,就是兩個(gè)數(shù)相等,返回負(fù)數(shù),就是第一個(gè)參數(shù)小,第一個(gè)參數(shù)就排在第二個(gè)參數(shù)后面了。
第二個(gè)參數(shù) key 是比較列表元素的什么屬性。
第三個(gè)參數(shù)reverse是bool型,意思是是否反轉(zhuǎn)(倒序排序)
s?=?[1,?2,?3,?4,?5]
s.sort(reverse=True)
print?s
#或者直接reverse
s?=?[1,?2,?3,?4,?5]
s.reverse()
print?s
#cmp?函數(shù),兩個(gè)數(shù)倒過來比較
s?=?[1,?2,?3,?4,?5]
s.sort(cmp=lambda?a,?b:cmp(b,?a))
print?s
#key,把元素取反來比較
s?=?[1,?2,?3,?4,?5]
s.sort(key=lambda?a:-a)
print?s
再做下廣告:
Python學(xué)習(xí)網(wǎng)站:
Python在線教程:
Python Online Judge:
題目不允許使用reversed或者[::-1],下面另外提供兩種方法。
1. 反向for循環(huán)
def?reverse(text):
ret?=?""
for?i?in?range(len(text)-1,?-1,?-1):
ret?=?ret?+?text[i]
return?ret
print?reverse("#ab@cd!")
2. 遞歸
def?reverse(text):
n?=?len(text)?-?1
if?(n?==?0):
return?text[0]
else:
return?text[n]?+?reverse(text[:n])
print?reverse("#ab@cd!")
8個(gè)超好用內(nèi)置函數(shù)set(),eval(),sorted(),reversed(),map(),reduce(),filter(),enumerate()
python中有許多內(nèi)置函數(shù),不像print那么廣為人知,但它們卻異常的強(qiáng)大,用好了可以大大提高代碼效率。
這次來梳理下8個(gè)好用的python內(nèi)置函數(shù)
1、set()
當(dāng)需要對一個(gè)列表進(jìn)行去重操作的時(shí)候,set()函數(shù)就派上用場了。
用于創(chuàng)建一個(gè)集合,集合里的元素是無序且不重復(fù)的。集合對象創(chuàng)建后,還能使用并集、交集、差集功能。
2、eval()之前有人問如何用python寫一個(gè)四則運(yùn)算器,輸入字符串公式,直接產(chǎn)生結(jié)果。用eval()來做就很簡單:eval(str_expression)作用是將字符串轉(zhuǎn)換成表達(dá)式,并且執(zhí)行。
3、sorted()在處理數(shù)據(jù)過程中,我們經(jīng)常會(huì)用到排序操作,比如將列表、字典、元組里面的元素正/倒排序。這時(shí)候就需要用到sorted() ,它可以對任何可迭代對象進(jìn)行排序,并返回列表。對列表升序操作:
對元組倒序操作:
使用參數(shù):key,根據(jù)自定義規(guī)則,按字符串長度來排序:
根據(jù)自定義規(guī)則,對元組構(gòu)成的列表進(jìn)行排序:
4、reversed()如果需要對序列的元素進(jìn)行反轉(zhuǎn)操作,reversed()函數(shù)能幫到你。reversed()接受一個(gè)序列,將序列里的元素反轉(zhuǎn),并最終返回迭代器。
5、map()做文本處理的時(shí)候,假如要對序列里的每個(gè)單詞進(jìn)行大寫轉(zhuǎn)化操作。這個(gè)時(shí)候就可以使用map()函數(shù)。
map()會(huì)根據(jù)提供的函數(shù),對指定的序列做映射,最終返回迭代器。也就是說map()函數(shù)會(huì)把序列里的每一個(gè)元素用指定的方法加工一遍,最終返回給你加工好的序列。舉個(gè)例子,對列表里的每個(gè)數(shù)字作平方處理:
6、reduce()前面說到對列表里的每個(gè)數(shù)字作平方處理,用map()函數(shù)。那我想將列表里的每個(gè)元素相乘,該怎么做呢?這時(shí)候用到reduce()函數(shù)。
reduce()會(huì)對參數(shù)序列中元素進(jìn)行累積。第一、第二個(gè)元素先進(jìn)行函數(shù)操作,生成的結(jié)果再和第三個(gè)元素進(jìn)行函數(shù)操作,以此類推,最終生成所有元素累積運(yùn)算的結(jié)果。再舉個(gè)例子,將字母連接成字符串。
你可能已經(jīng)注意到,reduce()函數(shù)在python3里已經(jīng)不再是內(nèi)置函數(shù),而是遷移到了functools模塊中。這里把reduce()函數(shù)拎出來講,是因?yàn)樗匾恕?/p>
7、filter()一些數(shù)字組成的列表,要把其中偶數(shù)去掉,該怎么做呢?
filter()函數(shù)輕松完成了任務(wù),它用于過濾序列,過濾掉不符合條件的元素,返回一個(gè)迭代器對象。filter()函數(shù)和map()、reduce()函數(shù)類似,都是將序列里的每個(gè)元素映射到函數(shù),最終返回結(jié)果。我們再試試,如何從許多單詞里挑出包含字母w的單詞。
8、enumerate()這樣一個(gè)場景,同時(shí)打印出序列里每一個(gè)元素和它對應(yīng)的順序號,我們用enumerate()函數(shù)做做看。
enumerate翻譯過來是枚舉、列舉的意思,所以說enumerate()函數(shù)用于對序列里的元素進(jìn)行順序標(biāo)注,返回(元素、索引)組成的迭代器。再舉個(gè)例子說明,對字符串進(jìn)行標(biāo)注,返回每個(gè)字母和其索引。
當(dāng)前名稱:python反轉(zhuǎn)函數(shù) python中反轉(zhuǎn)
本文路徑:http://www.chinadenli.net/article20/hpghjo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供ChatGPT、動(dòng)態(tài)網(wǎng)站、軟件開發(fā)、商城網(wǎng)站、做網(wǎng)站、企業(yè)網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)