中文字幕日韩精品一区二区免费_精品一区二区三区国产精品无卡在_国精品无码专区一区二区三区_国产αv三级中文在线

Python中列表的用法

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

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

深入列表對象

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

list.append(*x*)

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

list.extend(*iterable*)

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

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

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

list.remove(*x*)

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

list.pop([*i*])

移除并返回列表中給定位置的元素。如果沒有指定索引,a.pop() 移除并返回列表的最后一個(gè)元素。(i 外的方括號表示這個(gè)參數(shù)是可選的,而不是要求你在這個(gè)位置輸入方括號。你會經(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 被解釋為切片表示法,用于將搜索范圍限制在該列表的一個(gè)子序列內(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()

返回該列表的一個(gè)淺拷貝。相當(dāng)于 a[:]。

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

>>> 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]。這是一個(gè) Python 中所有可變數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)理念。

使用列表作為堆棧

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

>>> 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ì)列,其中添加的第一個(gè)元素是檢索的第一個(gè)元素(“先入,先出”);然而,列表對于這一目的并不高效。雖然從列表末尾追加和彈出是高效的,但是從列表的開頭開始插入或彈出就低效了(因?yàn)樗衅渌囟急仨氁苿右粋€(gè)位置)。

實(shí)現(xiàn)一個(gè)隊(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)在彈出第一個(gè)進(jìn)入的元素
'Eric'
>>> queue.popleft()                 # 現(xiàn)在彈出第二個(gè)進(jìn)入的元素
'John'
>>> queue                           # 按進(jìn)入順序維護(hù)隊(duì)列
deque(['Michael', 'Terry', 'Graham'])

列表初始化表達(dá)式

列表初始化表達(dá)式為創(chuàng)建列表提供了一個(gè)簡單的方法。一個(gè)常見的應(yīng)用就是對于一個(gè)序列,將其中的每個(gè)元素進(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]

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

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

或者使用如下等價(jià)形式:

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

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

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

這種寫法等價(jià)于:

>>> 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)]

嵌套列表

列表初始化時(shí),里面的元素可以是任何類型的表達(dá)式,甚至可以是一個(gè)列表。

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

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

del 語句

有一個(gè)方法可以根據(jù)索引而不是值從列表中刪除一個(gè)元素: del 語句。 這和 pop() 方法不同,后者會返回一個(gè)值。 del 語句也可用于從列表中刪除片段或清除整個(gè)列表 (先前我們通過將一個(gè)空列表賦值給這個(gè)片段來達(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 也可用于刪除整個(gè)變量:

>>> del a

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

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

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

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

廣告

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

成都seo排名網(wǎng)站優(yōu)化
老河口市| 扶绥县| 江陵县| 原平市| 克东县| 邵东县| 南昌县| 鄄城县| 昆山市| 堆龙德庆县| 淮滨县| 吉林省| 柳州市| 美姑县| 昂仁县| 东兴市| 砚山县| 砚山县| 芦溪县| 永丰县| 永兴县| 建昌县| 黔江区| 怀化市| 江山市| 靖远县| 宁明县| 吉水县| 桂阳县| 家居| 资中县| 隆昌县| 江西省| 饶阳县| 梁河县| 泰和县| 沧州市| 尼勒克县| 望奎县| 周口市| 蒲江县|