>>dir(list)。help():內置函數,用來查詢具體的說明文檔,比如>>>help(int)。在上一篇的Python3的基本數據類型中,我們初步了解了list列表,也介紹了列表是Python中使用最頻" />

日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

Python3基礎之list列表實例解析

系統 1676 0

通常來說Python中任何值都是一個對象,因此任何類型(int、str、list…)都是一個類。而類就必然有它的方法或屬性,我們要記下這么多類的所有方法顯然是不可能的,對此本文介紹兩個小技巧:

dir() :內置函數,用來查詢一個類或者對象所有屬性,比如>>> dir(list)。

help() :內置函數,用來查詢具體的說明文檔,比如>>> help(int)。

在上一篇的Python3的基本數據類型中,我們初步了解了list列表,也介紹了列表是Python 中使用最頻繁的數據類型。本文將進一步深入學習列表的使用。

一、列表的方法:

list.append(x)
在列表的尾部添加一個項,等價于 a[len(a):] = [x]。

list.extend(L)
將給定的列表L接到當前列表后面,等價于 a[len(a):] = L。

list.insert(i, x)
在給定的位置 i 前插入項,例如:a.insert(0, x) 會在列表的頭部插入,而 a.insert(len(a), x) 則等價于 a.append(x)。

list.remove(x)
移除列表中第一個值為 x 的項,沒有的話會產生一個錯誤。

list.pop([i])
刪除列表給定位置的項,并返回它。如果沒指定索引,a.pop()移除并返回列表最后一項。(方括號表示可選)

list.clear()
刪除列表中的所有項,相當于 del a[:]。

list.index(x)
返回列表中第一個值為 x 的項的索引。如果沒有匹配的項, 則產生一個錯誤。

list.count(x)
返回列表中 x 出現的次數。

list.sort()
就地完成列表排序。

list.reverse()
就地完成列表項的翻轉。

list.copy()
返回列表的一個淺拷貝,相當于a[:]。

二、列表當棧

List的方法使得其可以很方便地作為一個棧來使用。我們知道,棧的特點是最后進入的元素最先出來(即后入先出),用append()方法進行壓棧,用不指定索引的pop()方法進行出棧。

示例代碼如下:

            
stack = []
for x in range(1,6):
 stack.append(x)  # 入棧
 print('push', x, end=' ')
 print(stack)

print('Now stack is', stack)

while len(stack)>0:
 print('pop', stack.pop(), end=' ') # 出棧
 print(stack)


          

三、列表當隊列

列表還可以當作隊列來使用,隊列的特性是第一個加入的元素第一個取出來(即先入先出)。然而,把列表當隊列使用效率并不高,因為從列表的尾部添加和彈出元素是很快的,而在列表的開頭插入或彈出是比較慢的(因為所有元素都得移動一個位置)。
要實現一個隊列, 使用標準庫的collections.deque, 它被設計成在兩端添加和彈出都很快。

示例代碼如下:

            
from collections import deque
queue = deque()    # 創建空隊列
for x in range(1,6):
 queue.append(x)  # 入隊
 print('push', x, end=' ')
 print(list(queue))

print('Now queue is', list(queue))

while len(queue)>0:
 print('pop', queue.popleft(), end=' ') # 出隊
 print(list(queue))


          

四、列表推導式

列表推導式提供了從序列創建列表的簡單途徑。通常程序會對序列的每一個元素做些操作,并以其結果作為新列表的元素,或者根據指定的條件來創建子序列。

列表推導式的結構是:在一個方括號里,首先是一個表達式,隨后是一個 for 子句,然后是零個或更多的 for 或 if 子句。返回結果是一個根據表達從其后的 for 和 if 上下文環境中生成出來的列表。

示例代碼如下:

            
squares = [x**2 for x in range(10)] # 推導式
print(squares)
# 輸出是[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
pairs = [(x, y) for x in [1,2,3] for y in [3,1,4] if x!=y] # 推導式
print(pairs)
# 輸出是[(1, 3), (1, 4), (2, 3), (2, 1), (2, 4), (3, 1), (3, 4)]


          

五、列表嵌套

Python中并沒有二維數組的概念,但我們可以通過列表嵌套達到同樣的目的。

            
mat = [
   [1, 2, 3],
   [4, 5, 6],
   [7, 8, 9]
   ]


          

同樣,我們可以使用推導式生成嵌套的列表:

            
mat = [[1,2,3], [4,5,6], [7,8,9]]
new_mat = [ [row[i] for row in mat] for i in [0,1,2] ] # 嵌套
print(new_mat)
# 輸出[[1, 4, 7], [2, 5, 8], [3, 6, 9]]


          

附:del語句

del語句可以通過給定索引(而不是值)來刪除列表中的項,它與返回一個值的pop()方法不同。del語句也可以移除列表中的切片,或者清除整個列表 :

            
lst = [1,2,3,4,5,6,7,8,9]
del lst[2]  # 刪除指定索引項
print(lst)  
del lst[2:5] # 刪除切片
print(lst)
del lst[:]  # 刪除整個列表
print(lst)
del也可以用于刪除變量實體:
del lst


          

在刪除變量實體之后引用 lst 的話會產生錯誤。


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 沭阳县| 绩溪县| 阳西县| 广州市| 偃师市| 湖北省| 临泉县| 十堰市| 贡嘎县| 许昌县| 宜君县| 军事| 大英县| 余江县| 佳木斯市| 叙永县| 长葛市| 佛坪县| 青浦区| 宁波市| 宁明县| 曲松县| 攀枝花市| 青铜峡市| 莱州市| 澳门| 广汉市| 襄樊市| 灵石县| 大埔区| 天水市| 哈巴河县| 拉萨市| 太保市| 延边| 遂川县| 潜山县| 乌拉特后旗| 三亚市| 高平市| 晋中市|