list的使用
聲明list變量
classmates = ['Bob', 'Michael', 'Tracy']
獲取list元素個(gè)數(shù)len()
len(classmates) --- 3
訪問(wèn)list每一個(gè)位置的元素,索引位置從0開(kāi)始
classmates[0] --- 'Bob'
訪問(wèn)list倒數(shù)第幾個(gè)位置的元素
classmates[-1] --- 'Tracy'
classmates[-2] --- 'Michael'
classmates[-3] --- 'Bob'
追加元素append(_)
classmates.append('Adam')
classmates --- ['Bob', 'Michael', 'Tracy', 'Adam']
插入元素到指定位置insert(n, _)
classmates.insert(1, 'Jack')
classmates --- ['Bob', 'Jack', 'Michael', 'Tracy', 'Adam']
刪除末尾元素pop()
classmates.pop()
classmates --- ['Bob', 'Jack', 'Michael', 'Tracy']
刪除指定位置元素pop(n)
classmates.pop(1)
classmates --- ['Bob', 'Michael', 'Tracy']
替換某位置的元素
classmates[1] = 'Sarah'
classmates --- ['Bob', 'Sarah', 'Tracy']
list元素類型可不同
t = ['Bob', 18, True, ['asp', 'php']]
# 要想得到list中php這個(gè)數(shù)據(jù),可以寫成
p = t[4][1] --- 'php'
tuple的使用
tuple和list非常類似,但是tuple一旦初始化就不能修改,通常我們稱之為元組。
聲明tuple變量
classmates = ('Michael', 'Bob', 'Tracy')
它沒(méi)有append(),insert()這樣的方法。其他獲取元素的方法和list是一樣的,你可以正常地使用classmates[0],classmates[-1],但不能賦值成另外的元素。
定義一個(gè)空的tuple
t = ()
定義一個(gè)只有1個(gè)元素的tuple
t = (1, )
t --- (1, )
注意:這里沒(méi)有寫錯(cuò),當(dāng)寫為t = (1)時(shí),定義的不是tuple變量,而是1這個(gè)數(shù)字。這是因?yàn)槔ㄌ?hào)()既可以表示tuple,又可以表示數(shù)學(xué)公式中的小括號(hào),這就產(chǎn)生了歧義,因此,Python規(guī)定,這種情況下,按小括號(hào)進(jìn)行計(jì)算,計(jì)算結(jié)果自然是1。所以,只有1個(gè)元素的tuple定義時(shí)必須加一個(gè)逗號(hào),,來(lái)消除歧義。此外,Python在顯示只有1個(gè)元素的tuple時(shí),也會(huì)加一個(gè)逗號(hào),,以免你誤解成數(shù)學(xué)計(jì)算意義上的括號(hào)。
“可變的”tuple
t = ('a', 'b', ['A', 'B'])
t[2][0] = 'X'
t[2][1] = 'Y'
t --- ('a', 'b', ['X', 'Y'])
表面上看,tuple的元素確實(shí)變了,但其實(shí)變的不是tuple的元素,而是list的元素。tuple一開(kāi)始指向的list并沒(méi)有改成別的list,所以,tuple所謂的“不變”是說(shuō),tuple的每個(gè)元素,指向永遠(yuǎn)不變。即指向'a',就不能改成指向'b',指向一個(gè)list,就不能改成指向其他對(duì)象,但指向的這個(gè)list本身是可變的!