在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']