Python內(nèi)置的一種數(shù)據(jù)類型是列表:list灸眼。
list是一種有序的集合评腺,可以隨時(shí)添加和刪除其中的元素杈女。
比如夏漱,列出班里所有同學(xué)的名字豪诲,就可以用一個(gè)list表示:
?classmates = ['Michael','Bob','Tracy']
?print(classmates)
['Michael','Bob','Tracy']
變量classmates就是一個(gè)list。用len()函數(shù)可以獲得list元素的個(gè)數(shù):
print(len(classmates))
3
用索引來訪問list中每一個(gè)位置的元素挂绰,記得索引是從0開始的:
print(classmates[0])
Michael
print(classmates[1])
Bob
print(classmates[2])
Tracy
print(classmates[3])
Traceback (most recent call last):? File "", line 1, inIndexError: list index out of range
當(dāng)索引超出了范圍時(shí)屎篱,Python會(huì)報(bào)一個(gè)IndexError錯(cuò)誤服赎,所以,要確保索引不要越界交播,記得最后一個(gè)元素的索引是len(classmates) - 1重虑。
如果要取最后一個(gè)元素,除了計(jì)算索引位置外秦士,還可以用-1做索引缺厉,直接獲取最后一個(gè)元素:
print(?classmates[-1])
Tracy
以此類推,可以獲取倒數(shù)第2個(gè)隧土、倒數(shù)第3個(gè):
print(?classmates[-2])
Bob
print(?classmates[-3])
Michae
print(?classmates[-4])
Traceback (most recent call last):? File "", line 1, inIndexError: list index out of range
當(dāng)然提针,倒數(shù)第4個(gè)就越界了。
list是一個(gè)可變的有序表曹傀,所以辐脖,可以往list中追加元素到末尾:
classmates.append('Adam')
classmates
['Michael','Bob','Tracy','Adam']
也可以把元素插入到指定的位置,比如索引號(hào)為1的位置:
classmates.insert(1,'Jack')
print(classmates)
['Michael','Jack','Bob','Tracy','Adam']
要?jiǎng)h除list末尾的元素皆愉,用pop()方法:
classmates.pop()'Adam'
print(classmates)
['Michael','Jack','Bob','Tracy']
要?jiǎng)h除指定位置的元素嗜价,用pop(i)方法,其中i是索引位置:
classmates.pop(1)'Jack'
print(classmates)
['Michael','Bob','Tracy']
要把某個(gè)元素替換成別的元素亥啦,可以直接賦值給對(duì)應(yīng)的索引位置:
?classmates[1] ='Sarah'
print(classmates)
['Michael','Sarah','Tracy']
list里面的元素的數(shù)據(jù)類型也可以不同炭剪,比如:
L = ['Apple',123,True]
list元素也可以是另一個(gè)list,比如:
s = ['python','java', ['asp','php'],'scheme']
len(s)4
要注意s只有4個(gè)元素翔脱,其中s[2]又是一個(gè)list,如果拆開寫就更容易理解了:
p = ['asp','php']
s = ['python','java', p,'scheme']
要拿到'php'可以寫p[1]或者s[2][1]媒鼓,因此s可以看成是一個(gè)二維數(shù)組届吁,類似的還有三維、四維……數(shù)組绿鸣,不過很少用到疚沐。
如果一個(gè)list中一個(gè)元素也沒有,就是一個(gè)空的list潮模,它的長(zhǎng)度為0:
L = []
len(L)0
原博鏈接:https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/0014316724772904521142196b74a3f8abf93d8e97c6ee6000