Python學習筆記 (第5課)

來源:互聯網
上載者:User

標籤:

現在我們要學習一些Python的資料結構了,本節將主要學習列表(list)的用法

1.list的方法

list.append(x) 在list的末尾添加一個元素

>>> a=[1,2,3,4]
>>> a.append(‘a‘)
>>> a
[1, 2, 3, 4, ‘a‘]

list.extend(L) 在list的末尾添加列表L的所有元素

>>> a=[1,2,3,4]
>>> L=[‘a‘,‘b‘,‘c‘]
>>> a.extend(L)
>>> a
[1, 2, 3, 4, ‘a‘, ‘b‘, ‘c‘]

list.pop([i]) 刪除list索引為i-1的元素,並且返回刪除的元素,如果i未指定,則刪除列表最後一個元素

>>> a=[1,2,3,4]
>>> a.pop()
4
>>> a
[1, 2, 3]

>>> b=[1,2,3,4]
>>> b.pop(2)
3
>>> b
[1, 2, 4]

list.remove(x) 刪除list中值為x的元素,如果list中找不到該元素,則會引發一個錯誤

>>> a=[‘a‘,‘b‘,‘c‘,‘d‘]
>>> a.remove(‘b‘)
>>> a
[‘a‘, ‘c‘, ‘d‘]
>>> a.remove(9)

Traceback (most recent call last):
File "<pyshell#24>", line 1, in <module>
a.remove(9)
ValueError: list.remove(x): x not in list

list.index(x) 返回list中值為x的元素索引,如果list中找不到該元素,則會引發一個錯誤

>>> a=[‘a‘,‘b‘,‘c‘,‘d‘]
>>> a.index(‘c‘)
2
>>> a.index(2)

Traceback (most recent call last):
File "<pyshell#27>", line 1, in <module>
a.index(2)
ValueError: 2 is not in list

list.count(x) 統計並返回list中值為x的元素個數

>>> a=[1,2,3,1,2,3,1]
>>> a.count(1)
3
>>> a.count(3)
2

>>> a.count(‘a‘)

0

 list.insert(i,x) 在索引位置i處插入一個元素x,當i大於列表的個數,將在列表的末尾插入元素x

>>> a=[1,2,3,4,5,6]
>>> a.insert(2,‘a‘)
>>> a
[1, 2, ‘a‘, 3, 4, 5, 6]

>>>a.insert(10,‘a‘)
>>> a
[1, 2, ‘a‘, 3, 4, 5, 6, ‘a‘]

list.sort(cmp=Nonekey=Nonereverse=False) 對list進行重新排序,預設是按從小到大的順序排序(參數是可選的,我們將在之後學習參數的用法)

>>> a=[2,1,3,0,7,6,8]
>>> a.sort()
>>> a
[0, 1, 2, 3, 6, 7, 8]

list.reverse() 對list進行反向

>>> a=[2,3,4,1,2,0]

>>> a.reverse()
>>> a
[0, 2, 1, 4, 3, 2]

2.list 切片

引用列表的元素可以使用索引,每個列表的索引從左至右(正向)是從0開始,從右至左(反向)是從-1開始。例如,a=[1,2,3,4,5,6] a的正向和反向索引如所示:

 

a[0]=1

a[-1]=6

a[-6]=1

a[1]=2

  

list 可以通過list[x:y]的形式來擷取列表list從索引x到y(不包含y)的子集。

 >>> a=[1,2,3,4,5,6]
>>> a[0:2]
[1, 2]
>>> a[:]
[1, 2, 3, 4, 5, 6]
>>> a[0:]
[1, 2, 3, 4, 5, 6]
>>> a[:3]
[1, 2, 3]
>>> a[-1:-4]
[]

如果a[x:y]索引y處的元素在索引x處元素的左邊,那麼將返回一個空列表,如:a[4:-6]=[]

>>> a=[1,2,3,4,5,6]

>>> a[4:-6]
[]
>>> a[5:3]
[]

 

字串也可以當成一個特殊的列表,如:str=‘python’,我們也可以用切片來截取子字串:str[2:4]=‘th‘

>>> str=‘python‘
>>> str[2:4]
‘th‘

註:針對字串,我們還可以使用加法來為切片擷取的子字串,增加另一個子字串

>>> str=‘python‘
>>> ‘py‘+str[2:4]+‘on‘
‘python‘
>>> str[:]+‘is good‘
‘pythonis good‘

3.嵌套列表

有時候列表的元素也可能是一個列表,這樣就構成了嵌套列表,假如,a=[[1,2,3,4],1,2,3,4] ,a列表的第3個元素是一個子列表

我們可以通過list[x][y]來擷取子列表中的元素:

>>> a=[1,2,[‘a‘,‘b‘,‘c‘,‘d‘],3,4]
>>> a[2][2]
‘c‘
>>> a[2][-1]
‘d‘

4. x for x in list 語句的用法

我們有時候可能需要遍曆列表的元素,那麼我們可以利用for x in list的形式來實現:

>>> a=[1,2,3,4,5]
>>> for x in a:
print x

1
2
3
4
5

 我們有時可能想要對列表的每個元素進行處理,例如,我們想對列表的每個元素都加1:

>>> a=[1,2,3,4,5]
>>> [x+1 for x in a]
[2, 3, 4, 5, 6]

 

如果我們的列表包含了嵌套列表,我們也可以使用這個語句,例如:a=[[1,2,3],[4,5,6],[7,8,9]] ,我們想使子列表中的每個元素都加1:

>>> a=[[1,2,3],[4,5,6],[7,8,9]]
>>> [[sublist[i]+1 for i in range(3) ] for sublist in a]
[[2, 3, 4], [5, 6, 7], [8, 9, 10]]
>>>

 

假如我們想像二維數組那樣倒置數組,即,我想將 a=[[1,2,3],[4,5,6],[7,8,9]]  變成[[1,4,7],[2,5,8],[3,6,9]],我們可以這樣做:

>>> a=[[1,2,3],[4,5,6],[7,8,9]]
>>> [[ sublist[i] for sublist in a] for i in range(3)]
[[1, 4, 7], [2, 5, 8], [3, 6, 9]]

 

上面的代碼我們還可以用下面的代碼替換:

>>> x=[[],[],[]]
>>> a=[[1,2,3],[4,5,6],[7,8,9]]
>>> for i in range(3):
                  for sublist in a:
                          x[i].append(sublist[i])


>>> x
[[1, 4, 7], [2, 5, 8], [3, 6, 9]]

Python學習筆記 (第5課)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.