Python 12:切片

切片

取一個(gè)list或tuple的部分元素是非常常見的操作

>>> L = ['Michael', 'Sarah'. 'Trancy', 'Bob', 'Jack']

取前三個(gè)元素础钠,怎么做?
笨辦法:

>>> L[0], L[1], L[2]
['Michael', 'Sarah', 'Trancy']

取前N個(gè)元素,索引為0-(nN-1)的元素胁黑,可以用循環(huán):

>>> r = []
>>> n = 3
>>> for i in range(n):
            r.append(L[i])
>>> r
['Michael', 'Sarah', 'Trancy']

對(duì)這種經(jīng)常取指定索引范圍的操作僻澎,用循環(huán)十分繁瑣貌踏,因此十饥,Python提供了切片(Slice)操作符,對(duì)應(yīng)上面的問題祖乳,取前3個(gè)元素逗堵,用一行代碼完成切片:

>>> L[0:3]
['Michael', 'Sarah', 'Trancy']

L[0:3]表示,從索引0開始取凡资,直到索引3為止砸捏,但不包括索引3。
如果第一個(gè)索引是0 隙赁,還可以省略:

>>> L[:3]
['Michael', 'Sarah', 'Trancy']

也可以從索引1開始垦藏,取出2個(gè)元素:

L[1:3]
['Sarah', 'Trancy']

類似的,既然Python支持L[-1]取倒數(shù)第一個(gè)元素伞访,那么同樣支持倒數(shù)切片:

>>> L[-2:]
['Bob', 'Jack']
>>> L[-2:-1]
['Bob']

記住掂骏,倒數(shù)第一個(gè)元素的索引是-1。
切片操作十分有用厚掷,先創(chuàng)建一個(gè)0-99的數(shù)列:

>>> L = list(range(100))
>>> L
[0,1,2,3,...,99]

可以通過切片輕松取出某一段數(shù)列弟灼,比如前十個(gè)數(shù):

>>> L[:10]
[0,1,2,3,4,5,6,7,8,9]

后十個(gè)數(shù):

>>> L[-10:]
[90,91,92,93,94,95,96,97,98,99]

前十個(gè)數(shù),每兩個(gè)取一個(gè):

>>> L[:10:2]
[0,2,4,6,8]

所有數(shù)冒黑,每5個(gè)取一個(gè):

>>> L[::5]
[0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60, 65, 70, 75, 80, 85, 90, 95]

什么都不寫田绑,只寫[:]就可以原樣復(fù)制一個(gè)list:

>>> L[:]
[0, 1, 2, 3, ..., 99]

tuple也是一種list,唯一的區(qū)別是tuple不可變抡爹。因此掩驱,tuple也可以用切片操作,操作的結(jié)果仍是tuple冬竟。

>>> (0,1,2,3,4,5,6,7,8,9)[:3]
(0,1,2)

字符串‘xxx’也可以看成是list欧穴,每個(gè)元素就是一個(gè)字符。因此泵殴,字符串也可以切片操作涮帘,操作結(jié)果仍是字符串:

>>> 'ABCDEFG'[:3]
'ABC'
>>> 'ABCDEFG'[::2]
'ACEG'

練習(xí):利用切片,實(shí)現(xiàn)一個(gè)trim()函數(shù)笑诅,去掉字符串首尾的空格调缨,注意不要調(diào)用str的strip()方法:

def trim(s):
    while s[:1] == ' ':
         s = s[1:]
    while s[-1:] == ' ':
         s = s[:-1]
return s
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市吆你,隨后出現(xiàn)的幾起案子弦叶,更是在濱河造成了極大的恐慌,老刑警劉巖早处,帶你破解...
    沈念sama閱讀 217,277評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件湾蔓,死亡現(xiàn)場離奇詭異,居然都是意外死亡砌梆,警方通過查閱死者的電腦和手機(jī)默责,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門贬循,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人桃序,你說我怎么就攤上這事杖虾。” “怎么了媒熊?”我有些...
    開封第一講書人閱讀 163,624評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵奇适,是天一觀的道長。 經(jīng)常有香客問我芦鳍,道長嚷往,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,356評(píng)論 1 293
  • 正文 為了忘掉前任柠衅,我火速辦了婚禮皮仁,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘菲宴。我一直安慰自己贷祈,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,402評(píng)論 6 392
  • 文/花漫 我一把揭開白布喝峦。 她就那樣靜靜地躺著势誊,像睡著了一般。 火紅的嫁衣襯著肌膚如雪谣蠢。 梳的紋絲不亂的頭發(fā)上粟耻,一...
    開封第一講書人閱讀 51,292評(píng)論 1 301
  • 那天,我揣著相機(jī)與錄音漩怎,去河邊找鬼勋颖。 笑死嗦嗡,一個(gè)胖子當(dāng)著我的面吹牛勋锤,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播侥祭,決...
    沈念sama閱讀 40,135評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼叁执,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了矮冬?” 一聲冷哼從身側(cè)響起谈宛,我...
    開封第一講書人閱讀 38,992評(píng)論 0 275
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎胎署,沒想到半個(gè)月后吆录,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,429評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡琼牧,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,636評(píng)論 3 334
  • 正文 我和宋清朗相戀三年恢筝,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了哀卫。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,785評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡撬槽,死狀恐怖此改,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情侄柔,我是刑警寧澤共啃,帶...
    沈念sama閱讀 35,492評(píng)論 5 345
  • 正文 年R本政府宣布,位于F島的核電站暂题,受9級(jí)特大地震影響移剪,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜薪者,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,092評(píng)論 3 328
  • 文/蒙蒙 一挂滓、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧啸胧,春花似錦赶站、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,723評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至陷谱,卻和暖如春烙博,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背烟逊。 一陣腳步聲響...
    開封第一講書人閱讀 32,858評(píng)論 1 269
  • 我被黑心中介騙來泰國打工渣窜, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人宪躯。 一個(gè)月前我還...
    沈念sama閱讀 47,891評(píng)論 2 370
  • 正文 我出身青樓乔宿,卻偏偏與公主長得像,于是被迫代替她去往敵國和親访雪。 傳聞我的和親對(duì)象是個(gè)殘疾皇子详瑞,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,713評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • 一、python 變量和數(shù)據(jù)類型 1.整數(shù) Python可以處理任意大小的整數(shù)臣缀,當(dāng)然包括負(fù)整數(shù)坝橡,在Python程序...
    績重KF閱讀 1,700評(píng)論 0 1
  • 最近在慕課網(wǎng)學(xué)習(xí)廖雪峰老師的Python進(jìn)階課程,做筆記總結(jié)一下重點(diǎn)精置。 基本變量及其類型 變量 在Python中计寇,...
    victorsungo閱讀 1,679評(píng)論 0 5
  • 0. 序言 python 是一門腳本語言:封裝性強(qiáng),語法簡潔,開發(fā)效率高番宁,只用函數(shù)open就可以打開一個(gè)txt文件...
    付凱強(qiáng)閱讀 1,226評(píng)論 0 5
  • 海南的冬天蹲堂,氣候如此溫潤,到處郁郁蔥蔥贝淤,走進(jìn)鄉(xiāng)野田間恍若走進(jìn)最美的人間四月天柒竞。 今天外出,路過萬泉河國家農(nóng)業(yè)公園播聪,...
    菜園小景閱讀 583評(píng)論 0 2
  • 標(biāo)準(zhǔn)化工作記錄了目前安全朽基、高效完成作業(yè)并滿足對(duì)質(zhì)量水平要求的應(yīng)用最廣泛的工作方法。標(biāo)準(zhǔn)化作業(yè)定義了可以重復(fù)執(zhí)行而且...
    William余鋒閱讀 6,411評(píng)論 1 5