序列和索引
既然談到分片允睹,就脫離不了序列和索引這些概念萨螺。什么是序列呢筑累? 在Python中进栽,最基本的數(shù)據(jù)結(jié)構(gòu)是序列(sequence)裙顽。序列中的每個(gè)元素被分配一個(gè)序號(hào)——即元素的位置庸论,也稱為索引葫辐。第一個(gè)索引是 0菌赖,第二個(gè)則是 1梅肤,以此類推司蔬。序列中的最后一個(gè)元素標(biāo)記為 -1,倒數(shù)第二個(gè)元素為 -2姨蝴,一次類推俊啼。 下面是一個(gè)序列和相關(guān)索引位置的操作
===> greeting = "hello"
===>greeting[0]
===> g
===> greeting[-1]
===>o
分片
在了解序列和索引的概念之后,我們來(lái)看看分片是什么左医。分片是python語(yǔ)言自帶的一種操作授帕,使用兩個(gè)分割的索引 獲取一定范圍的元素同木。
>>> numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> numbers[3:6]
[4, 5, 6]
>>> numbers[0:1]
[1]
>>> numbers[0:10:2]
[1, 3, 5, 7, 9]
>>> numbers[3, 6, 3]
[4]
上述例子使用分片獲取numbers 的第四位到第六位以及第1位的內(nèi)容,在數(shù)學(xué)的區(qū)間概念中我們使用[3,6) 這樣的方式來(lái)體現(xiàn)跛十。
分片不僅僅有這樣的使用方式彤路,他還有負(fù)數(shù)方式也能使用,即取第-1個(gè)數(shù)字芥映,這是python的索引機(jī)制所決定的洲尊。
numbers[-3:]
[8, 9, 10]
分片操作還存在步長(zhǎng)這種設(shè)定:即每一次獲取數(shù)據(jù),都是間隔獲取的
>>> numbers[0:10:2]
[1, 3, 5, 7, 9]
>>> numbers[3, 6, 3]
[4]
步長(zhǎng)不能為0奈偏,但是可以為負(fù)數(shù)坞嘀,這樣會(huì)從左到右邊獲取數(shù)據(jù)
>>> numbers[8:3:-1]
[9, 8, 7, 6, 5]
>>> numbers[0:10:-2]
[]
>>> numbers[10:0:-2]
[10, 8, 6, 4, 2]
python語(yǔ)言十分之強(qiáng)大,在于他將一些其他函數(shù)通過(guò)函數(shù)實(shí)現(xiàn)的常用語(yǔ)法惊来,融入到日常使用的語(yǔ)法之中丽涩,同時(shí)屏蔽其中復(fù)雜的部分,使得函數(shù)簡(jiǎn)單易用唁盏。