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)