6/20python列表之索引和切片

在python中的列表類型可以往里面加入各種對象的元素。

列表類型中索引和切片

在【list】也可以進(jìn)行索引和切片,不過是以元素為單位的,而不是以字符為單位。
在切片中,索引序號也是從0開始的
 >>>a =  ['2',3,'make']
 >>>a
 ['2',3,'make']
 a[0]  #索引序號從0開始
 '2'
 >>>a[2]
 'make'
 >>>a[:2]  #跟Str中的類似,切片的范圍是:包含開始位置,到結(jié)束位置之前。
 [2,3]  #不包含結(jié)束位置
 a[1:]  #從開始位到最后一位
 [3,'make']
 >>>a[2][1:3]  #可以對列表中的元素做2次切片
 'ak'  #2次切片,a中的序號2位元素中的序號1到序號2位字符。
list和str兩種類型的數(shù)據(jù),有共同的地方,它們都屬于序列(都是一些對象按照某個次序排列起來,著就是序列的最大的特征)

因此,有很多類似的地方。比如,索引和切片。

 >>>lang = "python"
 >>>lang.index("y")  #表示字符"y"在lang中序列號是多少。
 1
 >>>lst = ['python','java','c++']
 >>>lst.index('java')  #表示java這個元素在lst列表中的序列號是多少。
 1

以上做展示的字符串串索引和切片,都是從左邊開始的。

反向索引

還有一種編號方式,就是從右邊開始,右邊第一個編號為-1,然后依次是-2,-3,...,依次類推下來。

這對字符串,列表等各種序列類型都適用。

 >>>lang = "python"
 >>>lang[-1]
 'n'
 >>>lang[-3]
 'h'
 >>>lst = ['python','java','c++']
 lst[-2]
 'java'

從右邊開始編號,第-1號是右邊第一個。
但是要切片的話,一定要遵循左邊數(shù)字小于右邊的數(shù)字。
例如:

 lang = ;python'
 lang[-3:-1]
 'ho'
 lst = ['python','java','c++']
 lst[-3:-1]
 ['python','java']

在反向序列中的切片,同樣遵循原則是:到包含開始位置,到結(jié)束位置之前。

反轉(zhuǎn)

 >>>ls = [1,2,3,4,5,6]
 ls[::-1]  #反轉(zhuǎn)
 [6,5,4,3,2,1]
 >>>ls
 [1,2,3,4,5,6]  #ls的對象數(shù)據(jù)沒有變化,只是用函數(shù)讓元素反向排列了。
對字符串同樣也可以
 >>>lang = 'python'
 lang[::-1]
 'nohtyp'
 >>>lang
 'python'

上面的反轉(zhuǎn),不管是int類型還是lst類型反轉(zhuǎn)之后,原來的值都沒有改變。

在python中用函數(shù)將序列類型反轉(zhuǎn)。
 >>> ls = [1,2,3,4,5,6,7,8]
 >>> ls
 [1, 2, 3, 4, 5, 6, 7, 8]
 >>> list(reversed(ls))
 [8, 7, 6, 5, 4, 3, 2, 1]
用【list(reversed(object))】函數(shù)可以返回反轉(zhuǎn)的序列.
它返回的對象也是可以迭代的,不過是已經(jīng)將原來的序列對象反轉(zhuǎn)了。

如下:

 >>>list(reversed('abcd'))
 ['d','c','b','a']
關(guān)于列表的操作就暫時就這么多了。
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容