Python中列表的用法

Python中列表的用法?很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

創(chuàng)新互聯(lián)主要從事做網(wǎng)站、網(wǎng)站制作、網(wǎng)頁設(shè)計、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)化德,十多年網(wǎng)站建設(shè)經(jīng)驗,價格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):18980820575

深入列表對象

List 數(shù)據(jù)類型包含更多的方法,下面是 List 對象包含的所有方法:

list.append(*x*)

將一個元素添加到列表的末端。相當于 a[len(a):] = [x]。

list.extend(*iterable*)

將一個 iterable 的對象中的所有元素添加到列表末端來拓展這個列表。相當于 a[len(a):] =iterable。

list.insert(*i*, *x*)

在列表中給定的位置插入一個元素。第一個是要插入的元素的位置。所以 a.insert(0, x) 將元素插入列表最前面,a.insert(len(a), x) 相當于 a.append(x)。

list.remove(*x*)

移除列表中第一個值為 x 的元素。如果沒有找到這樣的元素,拋出 ValueError。

list.pop([*i*])

移除并返回列表中給定位置的元素。如果沒有指定索引,a.pop() 移除并返回列表的最后一個元素。(i 外的方括號表示這個參數(shù)是可選的,而不是要求你在這個位置輸入方括號。你會經(jīng)常在 Python Library Reference 中看到這種標記方式)。

list.clear()

移除列表中所有的元素。相當于 del a[:]。

list.index(*x*[, *start*[, *end*]])

返回值為 x 的元素在列表中第一次出現(xiàn)的索引,索引從 0 開始。如果不存在這樣的元素,拋出  ValueError。

可選參數(shù) start 和 end 被解釋為切片表示法,用于將搜索范圍限制在該列表的一個子序列內(nèi)。返回的索引是該元素在相對于原列表的開端的位置而不是相對于 start 參數(shù)的位置。

list.count(*x*)

返回列表中值為 x 的元素的數(shù)量。

list.sort(*key=None*, *reverse=False*)

對列表中的元素進行原地排序(參數(shù)可以被用于自定義排序,參見 sorted())

list.reverse()

原地翻轉(zhuǎn)列表。

list.copy()

返回該列表的一個淺拷貝。相當于 a[:]。

一個用到了列表大部分方法的例子:

>>> fruits = ['orange', 'apple', 'pear', 'banana', 'kiwi', 'apple', 'banana']
>>> fruits.count('apple')
2
>>> fruits.count('tangerine')
0
>>> fruits.index('banana')
3
>>> fruits.index('banana', 4)  # 從索引 4 開始找 banana
6
>>> fruits.reverse()
>>> fruits
['banana', 'apple', 'kiwi', 'banana', 'pear', 'apple', 'orange']
>>> fruits.append('grape')
>>> fruits
['banana', 'apple', 'kiwi', 'banana', 'pear', 'apple', 'orange', 'grape']
>>> fruits.sort()
>>> fruits
['apple', 'apple', 'banana', 'banana', 'grape', 'kiwi', 'orange', 'pear']
>>> fruits.pop()
'pear'

你可能注意到像 insert、remove 或者 sort 這樣的方法只是改動了列表但是沒有打印出返回值,因為它們返回了默認的 None [1]。這是一個 Python 中所有可變數(shù)據(jù)結(jié)構(gòu)的設(shè)計理念。

使用列表作為堆棧

列表的方法使得可以把列表當成元素后進先出的堆棧來用。使用 append() 來把一個元素加到堆棧的頂部。使用不顯示攜帶索引參數(shù)的 pop() 方法來把一個元素從堆棧頂部移除。比如:

>>> stack = [3, 4, 5]
>>> stack.append(6)
>>> stack.append(7)
>>> stack
[3, 4, 5, 6, 7]
>>> stack.pop()
7
>>> stack
[3, 4, 5, 6]
>>> stack.pop()
6
>>> stack.pop()
5
>>> stack
[3, 4]

使用列表作為隊列

也可以使用列表作為隊列,其中添加的第一個元素是檢索的第一個元素(“先入,先出”);然而,列表對于這一目的并不高效。雖然從列表末尾追加和彈出是高效的,但是從列表的開頭開始插入或彈出就低效了(因為所有其他元素都必須移動一個位置)。

實現(xiàn)一個隊列,使用 collections.deque 它被設(shè)計為從兩端都具有快速追加和彈出的能力。例如:

>>> from collections import deque
>>> queue = deque(["Eric", "John", "Michael"])
>>> queue.append("Terry")           # Terry 進入
>>> queue.append("Graham")          # Graham 進入
>>> queue.popleft()                 # 現(xiàn)在彈出第一個進入的元素
'Eric'
>>> queue.popleft()                 # 現(xiàn)在彈出第二個進入的元素
'John'
>>> queue                           # 按進入順序維護隊列
deque(['Michael', 'Terry', 'Graham'])

列表初始化表達式

列表初始化表達式為創(chuàng)建列表提供了一個簡單的方法。一個常見的應(yīng)用就是對于一個序列,將其中的每個元素進行一些操作,產(chǎn)生新的列表,或者是從原序列按照一定條件創(chuàng)建出子列表。

例如,我們可以通過以下方式產(chǎn)生一組平方數(shù)。

>>> squares = []
>>> for x in range(10):
...     squares.append(x**2)
...
>>> squares
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

注意到在整個過程中,我們創(chuàng)建并修改了一個 x 變量,并且在循環(huán)完成之后依然存在。使用以下方式,我們同樣可以生成這個序列,且沒有額外的變量生成:

squares = list(map(lambda x: x**2, range(10)))

或者使用如下等價形式:

squares = [x**2 for x in range(10)]

上述兩段代碼,意思更明確,也更具可讀性。

列表初始化表達式由方括號 [] 包含,括號內(nèi)以 for 語句起始,后接任意個 for 語句或 if 語句。其結(jié)果是產(chǎn)生一個新的列表,列表內(nèi)的元素為其中的 for 語句或 if 語句的執(zhí)行結(jié)果。例如,以下表達式創(chuàng)建了一個列表,列表內(nèi)的每個元素形如 (x, y),其中 x 和 y 分別來自兩個列表,且 x 與 y 不相等。

>>> [(x, y) for x in [1,2,3] for y in [3,1,4] if x != y]
[(1, 3), (1, 4), (2, 3), (2, 1), (2, 4), (3, 1), (3, 4)]

這種寫法等價于:

>>> combs = []
>>> for x in [1,2,3]:
...     for y in [3,1,4]:
...         if x != y:
...             combs.append((x, y))
...
>>> combs
[(1, 3), (1, 4), (2, 3), (2, 1), (2, 4), (3, 1), (3, 4)]

嵌套列表

列表初始化時,里面的元素可以是任何類型的表達式,甚至可以是一個列表。

例如,下面的例子用 3 個長度為 4 的列表,表示了一個 3x4 的矩陣:

>>> matrix = [
...     [1, 2, 3, 4],
...     [5, 6, 7, 8],
...     [9, 10, 11, 12],
... ]

del 語句

有一個方法可以根據(jù)索引而不是值從列表中刪除一個元素: del 語句。 這和 pop() 方法不同,后者會返回一個值。 del 語句也可用于從列表中刪除片段或清除整個列表 (先前我們通過將一個空列表賦值給這個片段來達到此目的)。例如:

>>> a = [-1, 1, 66.25, 333, 333, 1234.5]
>>> del a[0]
>>> a
[1, 66.25, 333, 333, 1234.5]
>>> del a[2:4]
>>> a
[1, 66.25, 1234.5]
>>> del a[:]
>>> a
[]

del 也可用于刪除整個變量:

>>> del a

如果再次對變量 a 進行引用將引起錯誤 (至少在對變量 a 再次賦值前)。在后文中我們將發(fā)現(xiàn) del 的其他用途。

看完上述內(nèi)容是否對您有幫助呢?如果還想對相關(guān)知識有進一步的了解或閱讀更多相關(guān)文章,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝您對創(chuàng)新互聯(lián)的支持。

網(wǎng)站名稱:Python中列表的用法
本文來源:http://muchs.cn/article34/ghcjse.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App設(shè)計、響應(yīng)式網(wǎng)站、網(wǎng)站策劃、虛擬主機服務(wù)器托管、App開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都seo排名網(wǎng)站優(yōu)化