創(chuàng)新互聯(lián)www.cdcxhl.cn八線動態(tài)BGP香港云服務(wù)器提供商,新人活動買多久送多久,劃算不套路!
成都創(chuàng)新互聯(lián)是專業(yè)的固鎮(zhèn)網(wǎng)站建設(shè)公司,固鎮(zhèn)接單;提供成都網(wǎng)站制作、做網(wǎng)站,網(wǎng)頁設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行固鎮(zhèn)網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來合作!Python中列表的用法?很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。
深入列表對象
List 數(shù)據(jù)類型包含更多的方法,下面是 List 對象包含的所有方法:
list.append(*x*)
將一個元素添加到列表的末端。相當(dāng)于 a[len(a):] = [x]。
list.extend(*iterable*)
將一個 iterable 的對象中的所有元素添加到列表末端來拓展這個列表。相當(dāng)于 a[len(a):] =iterable。
list.insert(*i*, *x*)
在列表中給定的位置插入一個元素。第一個是要插入的元素的位置。所以 a.insert(0, x) 將元素插入列表最前面,a.insert(len(a), x) 相當(dāng)于 a.append(x)。
list.remove(*x*)
移除列表中第一個值為 x 的元素。如果沒有找到這樣的元素,拋出 ValueError。
list.pop([*i*])
移除并返回列表中給定位置的元素。如果沒有指定索引,a.pop() 移除并返回列表的最后一個元素。(i 外的方括號表示這個參數(shù)是可選的,而不是要求你在這個位置輸入方括號。你會經(jīng)常在 Python Library Reference 中看到這種標(biāo)記方式)。
list.clear()
移除列表中所有的元素。相當(dāng)于 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*)
對列表中的元素進(jìn)行原地排序(參數(shù)可以被用于自定義排序,參見 sorted())
list.reverse()
原地翻轉(zhuǎn)列表。
list.copy()
返回該列表的一個淺拷貝。相當(dāng)于 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 這樣的方法只是改動了列表但是沒有打印出返回值,因?yàn)樗鼈兎祷亓四J(rèn)的 None [1]。這是一個 Python 中所有可變數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)理念。
使用列表作為堆棧
列表的方法使得可以把列表當(dāng)成元素后進(jìn)先出的堆棧來用。使用 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]
使用列表作為隊(duì)列
也可以使用列表作為隊(duì)列,其中添加的第一個元素是檢索的第一個元素(“先入,先出”);然而,列表對于這一目的并不高效。雖然從列表末尾追加和彈出是高效的,但是從列表的開頭開始插入或彈出就低效了(因?yàn)樗衅渌囟急仨氁苿右粋€位置)。
實(shí)現(xiàn)一個隊(duì)列,使用 collections.deque 它被設(shè)計(jì)為從兩端都具有快速追加和彈出的能力。例如:
>>> from collections import deque >>> queue = deque(["Eric", "John", "Michael"]) >>> queue.append("Terry") # Terry 進(jìn)入 >>> queue.append("Graham") # Graham 進(jìn)入 >>> queue.popleft() # 現(xiàn)在彈出第一個進(jìn)入的元素 'Eric' >>> queue.popleft() # 現(xiàn)在彈出第二個進(jìn)入的元素 'John' >>> queue # 按進(jìn)入順序維護(hù)隊(duì)列 deque(['Michael', 'Terry', 'Graham'])
列表初始化表達(dá)式
列表初始化表達(dá)式為創(chuàng)建列表提供了一個簡單的方法。一個常見的應(yīng)用就是對于一個序列,將其中的每個元素進(jìn)行一些操作,產(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)]
上述兩段代碼,意思更明確,也更具可讀性。
列表初始化表達(dá)式由方括號 [] 包含,括號內(nèi)以 for 語句起始,后接任意個 for 語句或 if 語句。其結(jié)果是產(chǎn)生一個新的列表,列表內(nèi)的元素為其中的 for 語句或 if 語句的執(zhí)行結(jié)果。例如,以下表達(dá)式創(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)]
嵌套列表
列表初始化時,里面的元素可以是任何類型的表達(dá)式,甚至可以是一個列表。
例如,下面的例子用 3 個長度為 4 的列表,表示了一個 3x4 的矩陣:
>>> matrix = [ ... [1, 2, 3, 4], ... [5, 6, 7, 8], ... [9, 10, 11, 12], ... ]
del 語句
有一個方法可以根據(jù)索引而不是值從列表中刪除一個元素: del 語句。 這和 pop() 方法不同,后者會返回一個值。 del 語句也可用于從列表中刪除片段或清除整個列表 (先前我們通過將一個空列表賦值給這個片段來達(dá)到此目的)。例如:
>>> 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 進(jìn)行引用將引起錯誤 (至少在對變量 a 再次賦值前)。在后文中我們將發(fā)現(xiàn) del 的其他用途。
看完上述內(nèi)容是否對您有幫助呢?如果還想對相關(guān)知識有進(jìn)一步的了解或閱讀更多相關(guān)文章,請關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道,感謝您對創(chuàng)新互聯(lián)的支持。