Python創建list
Python內置的一種數據類型是列表:list。list是一種有序的集合,可以隨時添加和刪除其中的元素。
比如,列出班里所有同學的名字,就可以用一個list表示:
>>> ['Michael', 'Bob', 'Tracy']
['Michael', 'Bob', 'Tracy']
list是數學意義上的有序集合,也就是說,list中的元素是按照順序排列的。
構造list非常簡單,按照上面的代碼,直接用 [ ] 把list的所有元素都括起來,就是一個list對象。通常,我們會把list賦值給一個變量,這樣,就可以通過變量來引用list:
>>> classmates = ['Michael', 'Bob', 'Tracy']
>>> classmates # 打印classmates變量的內容
['Michael', 'Bob', 'Tracy']
由於Python是動態語言,所以list中包含的元素並不要求都必須是同一種數據類型,我們完全可以在list中包含各種數據:
>>> L = ['Michael', 100, True]
一個元素也沒有的list,就是空list:
>>> empty_list = []
Python按照索引訪問list
由於list是一個有序集合,所以,我們可以用一個list按分數從高到低表示出班里的3個同學:
>>> L = ['Adam', 'Lisa', 'Bart']
那我們如何從list中獲取指定第 N 名的同學呢?方法是通過索引來獲取list中的指定元素。
需要特別注意的是,索引從 0 開始,也就是說,第一個元素的索引是0,第二個元素的索引是1,以此類推。
因此,要打印第一名同學的名字,用 L[0]:
>>> print L[0]
Adam
要打印第二名同學的名字,用 L[1]:
>>> print L[1]
Lisa
要打印第三名同學的名字,用 L[2]:
>>> print L[2]
Bart
要打印第四名同學的名字,用 L[3]:
>>> print L[3]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IndexError: list index out of range
報錯了!IndexError意思就是索引超出了范圍,因為上面的list只有3個元素,有效的索引是 0,1,2。
所以,使用索引時,千萬注意不要越界。
Python之倒序訪問list
我們還是用一個list按分數從高到低表示出班里的3個同學:
>>> L = ['Adam', 'Lisa', 'Bart']
這時,老師說,請分數最低的同學站出來。
要寫代碼完成這個任務,我們可以先數一數這個 list,發現它包含3個元素,因此,最后一個元素的索引是2:
>>> print L[2]
Bart
有沒有更簡單的方法?
有!Bart同學是最后一名,俗稱倒數第一,所以,我們可以用 -1 這個索引來表示最后一個元素:
>>> print L[-1]
Bart
Bart同學表示躺槍。
類似的,倒數第二用 -2 表示,倒數第三用 -3 表示,倒數第四用 -4 表示:
>>> print L[-2]
Lisa
>>> print L[-3]
Adam
>>> print L[-4]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IndexError: list index out of range
L[-4] 報錯了,因為倒數第四不存在,一共只有3個元素。
使用倒序索引時,也要注意不要越界。