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

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

列表類型中索引和切片

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

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

 >>>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號是右邊第一個。
但是要切片的話,一定要遵循左邊數字小於右邊的數字。
例如:

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

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

反轉

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

上面的反轉,不管是int類型還是lst類型反轉之後,原來的值都沒有改變。

在python中用函數將序列類型反轉。
 >>> 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))】函數可以返回反轉的序列.
它返回的對象也是可以迭代的,不過是已經將原來的序列對象反轉了。

如下:

 >>>list(reversed('abcd'))
 ['d','c','b','a']
關於列表的操作就暫時就這麼多了。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章