python列表(List)

列表(list)是python中常用的一種類(lèi)型。

列表是由若干值組成的序列,這些值可以是任何類(lèi)型。

列表是可變的。

創(chuàng)建列表

創(chuàng)建一個(gè)列表,只需要將逗號(hào)(,)隔開(kāi)的值用方括號(hào)[]括起來(lái)就行。

>>> [1, 2, 3, 4, 5]
[1, 2, 3, 4, 5]

這就創(chuàng)建了一個(gè)列表,它的值分別是1,2,3,4,5.

列表內(nèi)的值可以是不同的類(lèi)型:

>>> [1, 2.5, 'mwang']
[1, 2.5, 'mwang']

當(dāng)然,值也可以是列表類(lèi)型,這也叫做列表的嵌套:

>>> [1, ['a', 'b'], 2, ['c', 'd']]
[1, ['a', 'b'], 2, ['c', 'd']]

這個(gè)列表有四個(gè)值,分別是:

  1. 整數(shù)1
  2. 列表['a', 'b']。這個(gè)列表包含兩個(gè)值,第1個(gè)是字符a,第2個(gè)是字符b
  3. 整數(shù)2。
  4. 列表['c', 'd']。這個(gè)列表包含兩個(gè)值,第1個(gè)是字符c,第2個(gè)是字符d。

也可以創(chuàng)建一個(gè)空列表:

>>> []
[]

可以將列表賦值給一個(gè)變量:

>>> name = ['zhao', 'qian', 'sun', 'li']
>>> name
['zhao', 'qian', 'sun', 'li']

列表是可變的,這意味著可以對(duì)列表進(jìn)行重新賦值:

>>> name = ['zhao', 'qian', 'sun', 'li']
>>> name
['zhao', 'qian', 'sun', 'li']
>>> name = [1, 2, 3, 4]
>>> name
[1, 2, 3, 4]

使用運(yùn)算符+連接列表:

>>> name1 = ['zhao', 'qian', 'sun', 'li']
>>> name2 = ['zhou', 'wu', 'zheng', 'wang']
>>> name = name1 + name2
>>> name
['zhao', 'qian', 'sun', 'li', 'zhou', 'wu', 'zheng', 'wang']

上面的例子中,+將列表name1與列表name2按照寫(xiě)明的順序連接,生成一個(gè)新的列表。把這個(gè)新列表賦值給變量name。

如果列表中有重復(fù)的值,可以使用*創(chuàng)建列表:

>>> age = ['wang', 24] * 4
>>> age
['wang', 24, 'wang', 24, 'wang', 24, 'wang', 24]

例子中,列表['wang', 24]被重復(fù)4次,生成一個(gè)新列表,并將新列表賦值給變量age。

訪問(wèn)列表中的值

通過(guò)下標(biāo)(index)作為索引,可以訪問(wèn)列表中的值。

列表中的第1個(gè)值的下標(biāo)是0,第2個(gè)值的下標(biāo)是1,第3個(gè)值的下標(biāo)是2……依此類(lèi)推。

還有一種負(fù)數(shù)的索引方法,列表中最后1個(gè)值的下標(biāo)是-1,倒數(shù)第2個(gè)值的下標(biāo)是-2,倒數(shù)第3個(gè)值的下標(biāo)是-3……依此類(lèi)推。

例如下面的這個(gè)列表:

name = ['zhao', 'qian', 'sun', 'li']

name列表的索引如下:

索引(下標(biāo)) 負(fù)數(shù)的索引(下標(biāo))
'zhao' 0 -4
'qian' 1 -3
'sun' 2 -2
'li' 3 -1

可以看到,對(duì)于有4(n)個(gè)值的列表,它的正數(shù)下標(biāo)只能到3(n-1)。可以使用兩種索引方式中的任意一種(或者混用)訪問(wèn)列表中的值:

>>> name = ['zhao', 'qian', 'sun', 'li']
>>> name[1]     # 第2個(gè)值
'qian'
>>> name[-3]    # 倒數(shù)第3個(gè)值
'qian'
>>> name[0]     # 第1個(gè)值
'zhao'
>>> name[-1]    # 最后1個(gè)值
'li'
>>> name[4]     # 超出范圍的下標(biāo)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IndexError: list index out of range

訪問(wèn)嵌套列表中的值:

>>> infomation = ['name', ['male', 'female'], 'age']
>>> infomation[1]
['male', 'female']
>>> infomation[1][0]
'male'

截取列表

可以截取列表的一部分。

首先創(chuàng)建一個(gè)列表:

>>> letters = ['a', 'b', 'c', 'd', 'e', 'f', 'g']

截取列表的一部分,需要使用下標(biāo)和冒號(hào):,截取出的部分會(huì)成為一個(gè)新列表。

下面是一些例子:

>>> letters
['a', 'b', 'c', 'd', 'e', 'f', 'g']
>>> letters[1:5]        # 第2到第5個(gè)值
['b', 'c', 'd', 'e']
>>> letters[1:-2]       # 第2到倒數(shù)第3個(gè)值
['b', 'c', 'd', 'e']
>>> letters[:5]         # 第1個(gè)值到第5個(gè)值
['a', 'b', 'c', 'd', 'e']
>>> letters[:-3]        # 第1到倒數(shù)第4個(gè)值
['a', 'b', 'c', 'd']
>>> letters[4:]         # 從第5個(gè)值到最后一個(gè)值
['e', 'f', 'g']
>>> letters[:]          # 所有值
['a', 'b', 'c', 'd', 'e', 'f', 'g']

對(duì)于list[n1:n2],截取列表中從下標(biāo)n1到下標(biāo)n2-1(即下標(biāo)包含n1但不包含n2)的部分,并將此部分作為一個(gè)新的列表。

更新列表

列表中的值是可變的。

使用list.append(obj)在列表末尾增加一個(gè)值:

>>> letters
['a', 'b', 'c', 'd', 'e', 'f', 'g']
>>> letters.append('h')
>>> letters
['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h']

例子中列表letters末尾增加了一個(gè)值'h'。

使用list.pop(index)刪除列表中的一個(gè)值,默認(rèn)是最后一個(gè)值,函數(shù)返回該值:

>>> letters
['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h']
>>> letters.pop()
'h'
>>> letters
['a', 'b', 'c', 'd', 'e', 'f', 'g']

例子中刪除了列表letters中的最后一個(gè)元素'h',并返回該值。

下面是三個(gè)常用的函數(shù):

>>> letters
['a', 'b', 'c', 'd', 'e', 'f', 'g']
>>> len (letters)       # 返回列表中值的個(gè)數(shù)
7
>>> max (letters)       # 返回列表中'最大'的值
'g'
>>> min (letters)       # 返回列表中'最小'的值
'a'

函數(shù)list.index(obj)返回objlist中第一個(gè)匹配項(xiàng)的下標(biāo),函數(shù)list.index(index,obj)list中下標(biāo)為index的位置插入值obj,下面是一個(gè)例子。

>>> letters
['a', 'b', 'c', 'd', 'e', 'f', 'g']
>>> if 'c' in letters:                  # 判斷'c'是否在letters內(nèi)
...     c_index = letters.index ('c')   # 取得第一個(gè)'c'的下標(biāo),賦值給變量c_index
...     letters.insert (c_index, 'z')   # 在下標(biāo)c_index的位置插入'z'
... 
>>> letters
['a', 'b', 'z', 'c', 'd', 'e', 'f', 'g']

由于'c'letters內(nèi),所以布爾表達(dá)式為真;取得第一個(gè)'c'的下標(biāo)為2,保存到變量c_index中;在下標(biāo)為c_index(2)的位置插入'z'。

使用list.remove(obj)刪除list中第一個(gè)obj的匹配項(xiàng):

>>> name
['li', 'qian', 'sun', 'zhao', 'sun']
>>> name.remove('sun')
>>> name
['li', 'qian', 'zhao', 'sun']

例子中,列表name中有兩個(gè)'sun',之后使用name.remove('sun')刪除了其中的第一個(gè)'sun'

>>> name
['li', 'qian', 'zhao', 'sun', 'qian']
>>> name.count ('qian')
2

list.count(obj)返回在listobj出現(xiàn)的次數(shù)。上面的例子中'qian'name中出現(xiàn)了2次。

list.reverse()對(duì)列表中的值進(jìn)行反向:

>>> name
['li', 'qian', 'zhao', 'sun', 'qian']
>>> name.reverse()
>>> name
['qian', 'sun', 'zhao', 'qian', 'li']

list.sort()對(duì)列表中的值進(jìn)行排序:

>>> name
['qian', 'sun', 'zhao', 'qian', 'li']
>>> name.sort()
>>> name
['li', 'qian', 'qian', 'sun', 'zhao']
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容