Python學習筆記:列表(list)基本內容

繁城落葉發表於2016-05-05

1.

Python中的列表包容性很強,列表中可以使相同的元素也可是不同的元素。

表示形式為用  []   來包含元素。

>>> L1 = [1,2,3]
>>> L2 = ['a','b','c']
>>> L3 = [1,'b',3]
>>> L1
[1, 2, 3]
>>> L2
['a', 'b', 'c']
>>> L3
[1, 'b', 3]


並且列表元素可以修改

>>> L = [1,2,3,'a','b','c']
>>> L
[1, 2, 3, 'a', 'b', 'c']
>>> L[1] = 5
>>> L
[1, 5, 3, 'a', 'b', 'c']

注意:(1)如果列表的元素為字元時,需要加上引號等。

    (2)如果不加引號則會報錯,提示為定義!


2.

Python中的列表的索引值也從0開始!(與C/C++陣列相似)

但是,python支援從右往左的索引值,最右邊的值為-1.

>>> L = [1,2,3,'a','b','c']
>>> L
[1, 2, 3, 'a', 'b', 'c']
>>> L[0]
1
>>> L[3]
'a'
>>> L[-1]
'c'
>>> L[-3]
'a

同樣也可以進行修改

>>> L = [1,2,3,'a','b','c']
>>> L
[1, 2, 3, 'a', 'b', 'c']
>>> L[-2] = 5
>>> L
[1, 2, 3, 'a', 5, 'c']


3.

Python中的列表可以進行切片處理。

例:L[1:3]  則會提取L列表中相應的元素,從位置1開始到3但不包含3!


例:L[1:3:1]  如果有第三個引數(稱為步進值),若步進值>0,則從左到右進行操作,也就是本例子中的從位置1到位置3不包含3,

每隔1個元素進行提取操作,若步進值為2,則每隔2個元素進行提取操作。依此論推

例:L[4:1:-1]  如果步進值<0,則從右到左進行操作,本例中從位置4到位置1不包含位置1,

每隔1個元素進行提取操作,若步進值為-2,則每隔2個元素進行提取操作。依此論推


注意:若不存在第三個引數預設從左至右進行,並每隔一個元素進行提取一次!


>>> L = [1,2,3,'a','b','c']
>>> L
[1, 2, 3, 'a', 'b', 'c']
>>> L[0]
1
>>> L[3]
'a'
>>> L = [1,2,3,'a','b','c']
>>> L
[1, 2, 3, 'a', 'b', 'c']
>>> L[1:3]
[2, 3]
>>> L[1:3:1]
[2, 3]
>>> L[1:3:2]
[2]
>>> L[4:1:-1]
['b', 'a', 3]
>>> L[4:1:-2]
['b', 3]


提取的數值課進行賦值或者輸出。

>>> L = [1,2,3,'a','b','c']
>>> L
[1, 2, 3, 'a', 'b', 'c']
>>> L1 = L[1:3]
>>> L1
[2, 3]
>>> L3 = L[1:4:2]
>>> L3
[2, 'a']
>>> L4 = L[4:1:-2]
>>> L4
['b', 3]



注意:若切片時未標明開始位置和結束位置時預設位置時最初或者最後。

>>> L = [1,2,3,'a','b','c']
>>> L
[1, 2, 3, 'a', 'b', 'c']
>>> L[:]
[1, 2, 3, 'a', 'b', 'c']
>>> L[1:]
[2, 3, 'a', 'b', 'c']
>>> L[:3]
[1, 2, 3]



若從左至右切片時,開始位置應小於結束位置。否則提取值資料為空。

>>> L = [1,2,3,'a','b','c']
>>> L
[1, 2, 3, 'a', 'b', 'c']
>>> L[1:1]
[]
>>> L[3:1]
[]
>>> L[1:3]
[2, 3]


若從右至左切片時,開始位置應大於結束位置。否則提取值資料為空。

>>> L = [1,2,3,'a','b','c']
>>> L
[1, 2, 3, 'a', 'b', 'c']
>>> L[1:1:-1]
[]
>>> L[1:3:-1]
[]
>>> L[3:1:-1]
['a', 3]



也可以運用切片的操作來對列表進行插入和更換元素


插入:

>>> L = [1,2,3,'a','b','c']
>>> L
[1, 2, 3, 'a', 'b', 'c']
>>> L1 = [9,8,7]
>>> L1
[9, 8, 7]
>>> L[2:2] = L1
>>> L
[1, 2, 9, 8, 7, 3, 'a', 'b', 'c']


注意:插入位置貌似只與開始位置有關(本人測試結束位置無論小於或者大於開始位置,都是在開始位置插入的內容)!

>>> L = [1,2,3,'a','b','c']
>>> L1 = [9,8,7]
>>> L[3:1] = L1
>>> L
[1, 2, 3, 9, 8, 7, 'a', 'b', 'c']



更換:

這是將開始位置以後的元素全部更換!

>>> L = [1,2,3,'a','b','c']
>>> L
[1, 2, 3, 'a', 'b', 'c']
>>> L1 = [9,8,7]
>>> L1
[9, 8, 7]
>>> L[3:] = L1
>>> L
[1, 2, 3, 9, 8, 7]
>>> L2 = ['a','b']
>>> L[1:] = L2
>>> L
[1, 'a', 'b']


也可以只將部分元素更換

>>> L = [1,2,3,'a','b','c']
>>> L
[1, 2, 3, 'a', 'b', 'c']
>>> L1 = [9,8,7]
>>> L1
[9, 8, 7]
>>> L[1:4] = L1
>>> L
[1, 9, 8, 7, 'b', 'c']


注意:這裡貌似跟插入一樣只跟開始位置有關(測試時,如果只想把L的1到4之間3個元素更換,但所更換的內容L1有四個元素,那麼會將L的位置1以後的四個內容

都進行更換!!!)

>>> L = [1,2,3,'a','b','c']
>>> L
[1, 2, 3, 'a', 'b', 'c']
>>> L1 = [9,8,7,6]
>>> L1
[9, 8, 7, 6]
>>> L[1:4] = L1
>>> L
[1, 9, 8, 7, 6, 'b', 'c']



例子:字元反轉!

>>> L = [1,2,3,'a','b','c']
>>> L
[1, 2, 3, 'a', 'b', 'c']
>>> L = L[::-1]
>>> L
['c', 'b', 'a', 3, 2, 1]


相關文章