1.使用[ ]將list的所有元素都括起來,就是一個(gè)list對(duì)象
>>> l=['Liu',18,True]
>>> print l
['Liu', 18, True]
python是動(dòng)態(tài)語言,所以list里可以放不同類型的數(shù)據(jù)
2.一個(gè)元素也沒有的list,就是空list
>>> j = []
>>> type(j)
>>> print j
[]
3.根據(jù)下標(biāo)訪問list
>>> print l
['Liu', 18, True]
>>> l[0]
'Liu'
4.倒序訪問
>>> print l
['Liu', 18, True]
>>> l[-1]
True
>>> l[-2]
18
>>> l[-3]
'Liu'
倒序下標(biāo)從-1開始
5.添加元素
方法一:append()
>>> print l
['Liu', 18, True]
>>> l.append('Wen')
>>> print l
['Liu', 18, True, 'Wen']
方法二:insert()
>>> print l
['Liu', 18, True, 'Wen']
>>> l.insert(1,'insert')
>>> print l
['Liu', 'insert', 18, True, 'Wen']
第一種為末尾插入,第二種為任意位置插入,比第一種方法靈活。
6.刪除元素
方法:pop()
返回:被刪除的元素
(1)情況一(帶下標(biāo)):
>>> print l
['Liu', 'insert', 18, True, 'Wen']
>>> l.pop(3)
True
>>> print l
['Liu', 'insert', 18, 'Wen']
(2)情況二(不帶下標(biāo)):
>>> print l
['Liu', 'insert', 18, 'Wen']
>>> l.pop()
'Wen'
>>> print l
['Liu', 'insert', 18]
不帶下標(biāo)的pop方法,默認(rèn)刪除最后一個(gè)元素。
7.替換元素
>>> print l
['Liu', 'insert', 18]
>>> l[-1]=19
>>> print l
['Liu', 'insert', 19]
8.特殊的有序list—tuple(元組)
(1)使用( )將元素括起來
(2)一旦創(chuàng)建完畢,就無法修改。
所以tuple沒有append()、insert()和pop()
(3)通過下標(biāo)索引元素,但是不能再賦值為別的元素
(4)包含 0 個(gè)元素的 tuple,也就是空tuple,直接用 ()
包含1個(gè)元素的 tuple時(shí)不能按照如下的方法創(chuàng)建:
>>> t = (1)
>>> print t
1
>>> type(t)
<type 'int'>
分析:
因?yàn)?)既可以表示tuple,又可以作為括號(hào)表示運(yùn)算時(shí)的優(yōu)先級(jí),結(jié)果 (1) 被Python解釋器計(jì)算出結(jié)果 1,導(dǎo)致我們得到的不是tuple,而是整數(shù) 1。
解決:
Python 規(guī)定,單元素 tuple 要多加一個(gè)逗號(hào)“,”,這樣就避免了歧義:
>>> t = (1,)
>>> print t
(1,)
>>> type(t)
<type 'tuple'>
9.'可變'的tuple
例子:
>>> t = ('a', 'b', ['A', 'B'])
>>> L = t[2]
>>> L[0] = 'X'
>>> L[1] = 'Y'
>>> print t
('a', 'b', ['X', 'Y'])
不是說tuple一旦定義后就不能改變了嗎?怎么現(xiàn)在又可以改變了呢?
分析:
當(dāng)我們定義tuple的時(shí)候:
當(dāng)我們把list的元素’A’和’B’修改為’X’和’Y’后,tuple變?yōu)椋?/p>
圖片2
tuple一開始指向的list并沒有改成別的list,所以,tuple所謂的“不變”是說,tuple的每個(gè)元素,指向永遠(yuǎn)不變。即指向’a’,就不能改成指向’b’,指向一個(gè)list,就不能改成指向其他對(duì)象,但指向的這個(gè)list本身是可變的!
10.切片
格式:list[x:y:z]
解析:
x表示切片開始的位置
y表示切片到哪里結(jié)束
z表示切片間隔數(shù)
負(fù)數(shù)用在從序列尾開始計(jì)算的位置
切片的操作類型:
con[start_index]:返回索引值為start_index的對(duì)象。start_index為 -len(con)到len(con)-1之間任意整數(shù)。
con[start_index: end_index]:返回索引值為start_index到end_index-1之間的連續(xù)對(duì)象。
con[start_index: end_index : step]:返回索引值為start_index到end_index-1之間,并且索引值與start_index之差可以被step整除的連續(xù)對(duì)象。
con[start_index: ]:缺省end_index,表示從start_index開始到序列中最后一個(gè)對(duì)象。
con[: end_index]:缺省start_index,表示從序列中第一個(gè)對(duì)象到end_index-1之間的片段。
con[:]:缺省start_index和end_index,表示從第一個(gè)對(duì)象到最后一個(gè)對(duì)象的完整片段。
con[::step]:缺省start_index和end_index,表示對(duì)整個(gè)序列按照索引可以被step整除的規(guī)則取值。
舉例:
str[6:] #截取第七個(gè)字符到結(jié)尾
str[:] #截取字符串的全部字符
str[0:3] #截取第一位到第三位的字符
str[:-3] #截取從頭開始到倒數(shù)第三個(gè)字符之前
str[2] #截取第三個(gè)字符
str[-1] #截取倒數(shù)第一個(gè)字符
str[::-1] #創(chuàng)造一個(gè)與原字符串順序相反的字符串
str[-3:-1] #截取倒數(shù)第三位與倒數(shù)第一位之前的字符
str[-3:] #截取倒數(shù)第三位到結(jié)
str[:-5:-3] #逆序截取