91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python列表的應用場景都有哪些呢

發布時間:2021-10-09 17:51:02 來源:億速云 閱讀:123 作者:柒染 欄目:編程語言

Python列表的應用場景都有哪些呢,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。

 今天來聊一聊列表在實際開發中的應用場景。

在開發中,選用何種數據結構是由我們面對的數據特征和業務場景決定的。

數據是單個的還是批量的,是小規模的還是海量的?

數據是獨立的還是彼此關聯的?

數據的生成是隨機的還是有先后順序的?

數據的用途是什么?會不會頻繁讀寫?只讀多還是修改多?

數據是否應用于多線程環境?

......(此處省略 N 多情形。)

一旦確定了數據特征和業務場景,我們就可以從開發工具箱中選擇合適的工具了。

對于 list 而言,首先它是一個對象集合,你可以在處理批量數據時使用 list。

>>> alist =[i for i inrange(21)] >>> alist [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20] >>> alist.append(2021) >>> alist [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,2021]

我們知道,tuple 也可以用來存儲多個對象,但是 tuple 是不可變的,一旦初始化,無法再增減其中的元素的個數。tuple  從語法上保證了元素數目不會被修改。

如果你恰好不希望別人向數據集中增刪元素,你應該優先使用 tuple,而非list。反過來,如果你需要動態調整數據集合中的元素的個數,那就應該選擇  list。

這是否意味著所有動態數據集都可以使用 list 呢?非也。

如果你的數據很少被修改,絕大部分時間都是被讀取的,這很適合使用 list 來存儲。因為 list  為我們提供了索引和切片操作,可以快速訪問其中的元素。

>>> alist [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,2021] >>> alist[10] 10 >>> alist[3:9] [3,4,5,6,7,8] >>> alist[3:9:2] [3,5,7]

如果你僅僅使用 append() 在 list 尾部追加元素,或者刪除 list 尾部元素,那也可以放心使用  list。因為,在列表末尾添加和刪除元素非常快。

>>> 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 [3,4,5]

這種情形下,list 其實就用作棧(stack)了。

但是,如果你的程序需要頻繁在 list 頭部或中間插入或刪除元素,list 就不太適合你的需求了。

因為,list  底層是通過變長數組實現的。在數組頭部或中間插入或刪除元素,需要逐個移動插入位置之后的每個元素。這在數據量大時會消耗大量時間,效率低下。

而在常見的業務場景中,頻繁增刪中間元素的操作多見于鏈式存儲結構(如鏈表),在線性存儲結構(如數組)中并不多見。

如果想在 Python 中使用鏈式結構,可以使用 collections.deque。嚴格來說,collections.deque  也不是一個完全的鏈式結構,它是一個帶有塊(block)數據的鏈式結構。每個 block 都是一個線性數組。

我們來看一個需要頻繁在數據集的首尾執行操作的場景:隊列(queue)。

隊列是一個先進先出(FIFO)的數據結構,數據從尾部插入,從頭部取出。就好像我們日常排隊一樣。

由于需要頻繁刪除頭部元素,list 也不適合用作隊列。很多初學者僅從list 這個單詞的字面意思來理解,就把 list  作為隊列來使用,這是欠妥的。

我們可以用 collections.deque 來實現隊列操作。

>>>from collections import deque >>> queue = deque(["Eric","John","Michael"]) >>> queue.append("Terry") >>> queue.append("Graham") >>> queue deque(['Eric','John','Michael','Terry','Graham']) >>>  >>> queue.popleft() 'Eric' >>> queue.popleft() 'John' >>> queue deque(['Michael','Terry','Graham'])

list 適用于處理動態數據集,特別適合用于讀操作遠多于寫操作的場景。

list 可用來實現棧操作。

List 不適合用作隊列,可使用 collections.deque 來實現隊列操作。

看完上述內容,你們掌握Python列表的應用場景都有哪些呢的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

岳阳市| 东源县| 河南省| 通化市| 温宿县| 隆尧县| 阿城市| 舟曲县| 清涧县| 富川| 航空| 侯马市| 凉山| 中江县| 宜昌市| 罗源县| 安平县| 武定县| 蒙阴县| 乾安县| 成都市| 安图县| 桃源县| 平安县| 陵川县| 汶上县| 承德市| 高唐县| 临邑县| 横峰县| 都匀市| 玛纳斯县| 聂荣县| 阜南县| 什邡市| 蓬溪县| 昭平县| 汕头市| 青岛市| 东乌| 新巴尔虎左旗|