Python學習筆記整理(五)Python中的列表.

來源:互聯網
上載者:User

標籤:

列表和欄位,這兩種類型幾乎是Python所有指令碼的主要工作群組件。他們都可以在原處進行修改,可以按需求增加或縮短,而且包含任何種類的對象或者被嵌套。
一、列表
列表的主要屬性:
*任意對象的有序集合
從功能上看,列表就是收集其他對象的地方,可以把它看作組。列表所包含每一項都保持了從左至右的位置順序(它們是序列)
*通過位移讀取
和字串一樣,可以通過列表對象的位移對其進行索引,從而讀取對象的某一部分內容。可以自行分區和合并之類的任務。
*可變長度,異構以及任意嵌套
列表可以實地增長或者縮短,並且可以包含任何類型的對象。支援任意的嵌套,可以建立列表的子列表的子列表。
*屬於可變序列的分類
列表可以在原處修改。序列操作在列表與字串中的工作方式相同。唯一的區別是:當合并和分區這樣的操作當應用於列表時,
返回新的列表而不是新的字串。然而列表是可變的,因為它們支援字串不支援的其他動作,例如刪除和索引賦值操作。
它們都是在原處修改列表。
*對象引用數組
列表包含了0或多個其他對象的引用。包含任何對象,對象可以是字典,也就是說可以嵌套字典。在Python解譯器內部,列表就是C數組而不是連結結構。常見的具有代表性的列表操作。更多可以查閱Python的標準庫或help(list)或dir(list)查看list方法的完整列表清單。
操作        解釋
L1=[]        一個空的列表
L2=[0,1,2,3]    四項:索引0到3
L3=[‘abc‘,[‘def‘,‘ghi‘]]    嵌套的子列表
L2[i]        索引
L2[i][j]    索引的索引
L2[i:j]        分區
len(L2)        求長度
L1+l2        合并
L2*        重複
for x in L2    迭代
3 in L2        成員
L2.append(4)    方法:增加 增加單個對象
L2.extend([5,6,7]) 方法:增加對多個對象
L2.sort()     方法:排序
L3.index(‘abc‘)     方法:通過對象尋找對象索引(和索引相反的操作)
L2.insert(I,X)     方法:插入(在I位置插入X)。

insert() 插入的位置超過了列表的範圍會插入得到列表最後一個位置。
L2.reverse()      方法:翻轉
L2.remove(‘b‘)     方法:移除 方法的參數 填寫的對象
L2.pop(1)      方法:移除 方法的參數填寫的是索引
del L2[K]     裁剪:k為裁剪掉的索引
del L2[i:j]     裁剪:
L2[i]=1         索引賦值
L2[i:j]=[4,5,6]     分區賦值
rang(4)         產生整數列表/元組
xrange(1,4)    
L4=[x**2 for x in range(5)]    列表解析

二、實際應用中的列表
1、基本欄表操作
合并和重複,和字串基本一致,不過結果是一個新的列表,而不是一個字串。
>>> len([1,2,3])
3
>>> [1,2,3]+[4,5,6]
[1, 2, 3, 4, 5, 6]
>>> [‘diege‘,18]*3
[‘diege‘, 18, ‘diege‘, 18, ‘diege‘, 18]
>>> 3 in [1,2,3]
True
>>> for x in [1,2,3]:print x,
...
1 2 3
注意“+”操作和字串中的一樣,然而值得重視的時"+"兩邊必須是相同類型的序列。不能將一個列表和一個字串合并
到一起,除非先把列錶轉換為字串。

>>> str([1,2]) + ‘34‘
‘[1, 2]34‘
>>> [1,2]+list(‘34‘)
[1, 2, ‘3‘, ‘4‘]
2、索引,分區,矩陣
對列表進行索引的結果就是你指定的位移處的對象(不管是什麼類型),而對列表進行分區時往往返回一個新的列表
>>> L=[‘diege‘,‘lily‘,‘keylly‘]
>>> L[1]
‘lily‘
>>> L[-1]
‘keylly‘
>>> L[1:]
[‘lily‘, ‘keylly‘]
>>> LL=[[1,2,3],[4,5,6],[7,8,9]]
>>> LL[2]
[7, 8, 9]
>>> LL[1][2]
6
三、原處修改列表
列表可變,支援實地改變列表對象的操作,以下操作都可以直接修改列表對象,而不會像字串那樣強迫你建立一個新的拷貝。因為python只處理對象引用,所以需要將原處修改一個對象與產生一個新的對象區分開來。
1、索引和分區賦值
賦值給一個特定的項(位移)或整個片段(分區)來改變列表的內容。
>>> L=[‘diege‘,‘lily‘,‘keylly‘]
>>> L[1]=‘tom‘
>>> L
[‘diege‘, ‘tom‘, ‘keylly‘]
>>> L[0:2]=[‘boo‘,‘july‘]
>>> L
[‘boo‘, ‘july‘, ‘keylly‘]

>>> L
[‘lily‘, ‘kelly‘, ‘x‘, [1, 2, 3]]
>>> L[0:2]=[‘lily‘,‘kelly‘,‘fang‘]
>>> L
[‘lily‘, ‘kelly‘, ‘fang‘, ‘x‘, [1, 2, 3]]
分區賦值可以分成兩步來理解。先刪除,再插入。

列表嵌套字典

>>> L
[‘diege‘, {‘tow‘: 789, ‘one‘: 456}, 999]
>>> L[1]      
{‘tow‘: 789, ‘one‘: 456}
>>> L[1][‘one‘]
456
2、列表方法調用
1)、append() 追加一個元素

注意:追加是追加一個對象,一個字串,一個列表等
>>> L
[‘boo‘, ‘july‘, ‘keylly‘]
>>> L.append(‘jun‘)
>>> L
[‘boo‘, ‘july‘, ‘keylly‘, ‘jun‘]

>>> L
[‘lily‘, ‘kelly‘, ‘fang‘, ‘x‘, [1, 2, 3], ‘wang‘]
>>> L.append([‘wang‘,‘fei‘])
>>> L
[‘lily‘, ‘kelly‘, ‘fang‘, ‘x‘, [1, 2, 3], ‘wang‘, [‘wang‘, ‘fei‘]]
2)、extend() 在末端插入多個元素

放一個字串會分解成字元插入,所以插入的參數要放入列表中。

>>> L.extend(‘test‘)
>>> L
[‘lily‘, ‘kelly‘, ‘fang‘, ‘x‘, [1, 2, 3], ‘wang‘, ‘t‘, ‘e‘, ‘s‘, ‘t‘]

>>> del L[5:]

>>> L            
[‘lily‘, ‘kelly‘, ‘fang‘, ‘x‘, [1, 2, 3]]
>>> L.extend([‘zhang‘,‘wang‘])   
>>> L
[‘lily‘, ‘kelly‘, ‘fang‘, ‘x‘, [1, 2, 3], ‘zhang‘, ‘wang‘]


>>> L=[1,2]
>>> L.extend([3,4,5])
>>> L
[1, 2, 3, 4, 5]
3)、insert() 插入 要指定插入的位置和資料

insert() 插入的位置超過了列表的範圍會插入得到列表最後一個位置。
>>> L.insert(1,5)
>>> L
[1, 5, 4]
>>> L.insert(2,[6,7,9])
>>> L
[1, 5, [6, 7, 9], 4]

>>> L=[‘diege‘,‘lily‘]
>>> L.insert(1,‘kelly‘)
>>> L
[‘diege‘, ‘kelly‘, ‘lily‘]
4)、pop()  刪除一個元素
pop()      方法:移除 方法的參數填寫的是索引,預設最後一個
>>> L
[1, 2, 3, 4, 5]
>>> L.pop()
5
>>> L
[1, 2, 3, 4]
可以指定要刪除的索引
>>> L.pop(2)
3
>>> L      
[1, 2, 4]
5)、remove() 移除 必須指定對象名
>>> L.remove(2)
>>> L
[1, 4]


6)、sort() 排序
>>> L.sort()
>>> L
[‘boo‘, ‘july‘, ‘jun‘, ‘keylly‘]
7)、reverse() 序列反轉
>>> L.reverse()   
>>> L
[‘keylly‘, ‘jun‘, ‘july‘, ‘boo‘]

>>> L
[‘diege‘, ‘kelly‘]
>>> L.remove(‘diege‘)
>>> L
[‘kelly‘]

注意 不支援find()和replace()方法,這兩個方法屬於字串
3、其他常見的列表操作
del  L[1]
>>> L
[1, 5, [6, 7, 9], 4]
>>> del  L[1]
>>> L
[1, [6, 7, 9], 4]
>>> del  L[1:]
>>> L
[1]
>>> L=[‘diege‘,1,5]
>>> L[1:]=[]
>>> L
[‘diege‘]

5個0列表的建立三種方法
[0]*5
>>>
>>> [0 for i in range(5)]
>>> L=[]
>>> for i in range(5):
...  L.append(0

 

Python學習筆記整理(五)Python中的列表.

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.