摘要:取多個(gè)元素從頭開始取多個(gè)元素切片結(jié)束,但是不包括該的元素。切片開始的不填則默認(rèn)是從最前端即開始。當(dāng)然,從尾端開始切片,也支持省略代表一直切到尾部。其他編程語言入都提供了很多操作字符串的函數(shù),其實(shí)中可以利用切片輕松完成。
取一個(gè)list或者tuple的一部分是十分常見的操作。我們除了利用循環(huán)通過索引一個(gè)個(gè)獲取元素外,python還為我們提供了方便的切片(Slice)操作符:。
我們定義一個(gè)list,以供下面舉例使用。
L = ["apple","banaba","peal","orange","water melon"]取一個(gè)元素 順序取一個(gè)元素
例如L[1]代表第2個(gè)元素,即index為1的元素。
逆序取一個(gè)元素list、tuple、string等不僅能從頭開始取元素,還可以從尾端開始取元素。例如:
list[-1]則是指list的倒數(shù)第1個(gè)。
print L[0:3] ||____切片結(jié)束index,但是不包括該index的元素。 |____切片起始index。包括該index的元素。 # 上述即取L這個(gè)list的index為0、1、2的三個(gè)元素。 print L[ :3] |___切片開始的index不填則默認(rèn)是從list最前端即index=0開始。(事實(shí)上也不用空一格,這里只是展示方便。)
上述兩個(gè)print函數(shù)輸出的都是["apple", "banaba", "peal"]。切片符號(hào)是一對(duì)
從尾端開始取多個(gè)元素例如
L[-3:-1] | |____倒數(shù)第1個(gè)結(jié)束,但不包括該元素。 |_____倒數(shù)第3個(gè)開始,包括該元素。
哇,我們找到了一個(gè)規(guī)律:
就是python切片的時(shí)候總是包括前面那個(gè)元素,卻不包括最后一個(gè)元素。
當(dāng)然,從尾端開始切片,也支持省略index代表一直切到尾部。例如:
L[-3:]
突然有一個(gè)神奇的想法,切片的時(shí)候開始與結(jié)束時(shí)的index都省略,那么會(huì)發(fā)生什么?
即L[:],謎底就是切出了一個(gè)跟原來的list一摸一樣的list。
上面所有的例子都是用list來舉例說明的。其實(shí)tuple、string都是一樣的。
其他編程語言入python、java都提供了很多操作字符串的函數(shù),其實(shí)python中可以利用切片輕松完成。
python切片的時(shí)候[from:to]中的from一定要比to小,才會(huì)返回正確的切片,否則會(huì)返回一個(gè)空的list、tuple或則什么都沒有(給字符串切片的時(shí)候)。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/44288.html
摘要:我們還可以給切片進(jìn)行命名,有名字的切片,顯然更具有可讀性。對(duì)切片賦值時(shí),賦值符號(hào)右側(cè)必須是一個(gè)可迭代對(duì)象,即使這個(gè)對(duì)象只包含一個(gè)元素,否則會(huì)提示錯(cuò)誤。注以上內(nèi)容主體來自于流暢的一書中切片和切片原理 切片是python中列表(list)、元組(tuple)、字符串(str)等序列類型都支持的一種操作,但實(shí)際上切片的功能比人們所想象的要強(qiáng)大的多。 切片區(qū)間為什么會(huì)忽略最后一個(gè)元素 當(dāng)只有...
摘要:的魔術(shù)方法是中那些預(yù)定義的像類型的函數(shù)。使用的魔術(shù)方法的最大優(yōu)勢在于提供了簡單的方法讓對(duì)象可以表現(xiàn)得像內(nèi)置類型一樣。廖雪峰老師教程里寫的是方法,不知道為啥。 Python的魔術(shù)方法是Python中那些預(yù)定義的像__XXX__類型的函數(shù)。使用Python的魔術(shù)方法的最大優(yōu)勢在于python提供了簡單的方法讓對(duì)象可以表現(xiàn)得像內(nèi)置類型一樣。 __str__函數(shù) __str__函數(shù)用于處理打印...
摘要:代碼現(xiàn)在還比較簡陋,但起碼解決了問題,等以后熟悉了的語言以后再回來優(yōu)化吧 正在照著廖雪峰dalao的教程學(xué)習(xí)python中目前學(xué)到了高級(jí)特性->切片這節(jié)課有個(gè)教程 利用切片操作,實(shí)現(xiàn)一個(gè)trim()函數(shù),去除字符串首尾的空格,注意不要調(diào)用str的strip()方法: 思考了很久,最終用笨方法寫出來了一個(gè)模板 l = if(l): x = 0 y = 1 whi...
摘要:具體方法和上一篇一樣,也是用各個(gè)分量的哈希值進(jìn)行異或運(yùn)算,由于的分量可能很多,這里我們使用函數(shù)來歸約異或值。每個(gè)分量被映射成了它們的哈希值,這些哈希值再歸約成一個(gè)值這里的傳入了第三個(gè)參數(shù),并且建議最好傳入第三個(gè)參數(shù)。 《流暢的Python》筆記。本篇是面向?qū)ο髴T用方法的第三篇。本篇將以上一篇中的Vector2d為基礎(chǔ),定義多維向量Vector。 1. 前言 自定義Vector類的行為...
摘要:例如,的序列協(xié)議只需要和兩個(gè)方法。任何類如,只要使用標(biāo)準(zhǔn)的簽名和語義實(shí)現(xiàn)了這兩個(gè)方法,就能用在任何期待序列的地方。方法開放了內(nèi)置序列實(shí)現(xiàn)的棘手邏輯,用于優(yōu)雅地處理缺失索引和負(fù)數(shù)索引,以及長度超過目標(biāo)序列的切片。 序列的修改、散列和切片 接著造Vector2d類 要達(dá)到的要求 為了編寫Vector(3, 4) 和 Vector(3, 4, 5) 這樣的代碼,我們可以讓 init 法接受任...
閱讀 3354·2021-11-10 11:36
閱讀 3250·2021-10-08 10:21
閱讀 2883·2021-09-29 09:35
閱讀 2428·2021-09-22 16:06
閱讀 3983·2021-09-09 09:33
閱讀 1337·2019-08-30 15:44
閱讀 3180·2019-08-30 10:59
閱讀 2992·2019-08-29 15:32