列表與元組:列表和元組之間的區別

已發表: 2021-01-08

在 Python 中,列表和元組是一類可以存儲一個或多個對像或值的數據結構。 列表用於將多個項目存儲在一個變量中,並且可以使用方括號創建。 同樣,元組也可以在單個變量中存儲多個項目,並且可以使用括號聲明。

雖然list 和 tuple 有很多不同,但也有一些相似之處,如下:

  • 這兩種數據結構都是存儲項目集合的序列數據類型。
  • 任何數據類型的項目都可以存儲在其中。
  • 項目可以通過它們的索引來訪問。

目錄

列表與元組

下表包含 Python中列表和元組的基本區別。

列表元組
它是可變的它是不可變的
迭代的含義在列表中是耗時的。 元組中迭代的含義要快得多。
插入和刪除等操作執行得更好。 可以更好地訪問元素。
消耗更多內存。 消耗更少的內存。
許多內置方法可用。 沒有很多內置方法。
列表中很容易出現意外錯誤和更改。

元組中很少發生意外錯誤和更改。

以下部分提供了列表與元組的詳細版本,以便更好地理解。

語法差異

正如介紹中提到的,list 和 tuple 的語法是不同的。 例如:

list_num = [10, 20, 30, 40]

tup_num = (10, 20, 30, 40)

可變性

列表和元組之間最重要的區別之一是列表是可變的,而元組是不可變的。 這意味著可以更改列表,而不能更改元組。

因此,某些操作可以在列表上工作,但不能在元組上工作。 例如,在數據科學中,如果列表已經存在,則可以重新分配其中的特定元素。 除此之外,可以重新分配整個列表。 可以從列表中刪除元素和元素切片。

另一方面,元組上的特定元素不能重新分配或刪除,但可以對其進行切片,甚至重新分配和刪除整個元組。 因為元組是不可變的,所以它們不能被複製。

查看: Python 與 Java

運營

儘管有許多類似於列表和元組的操作,但列表具有元組不具備的附加功能。 這些是插入和彈出操作,以及列表中的排序和刪除元素。

職能

一些 Python 函數可以應用於這兩種數據結構,例如 len、max、min、any、sum、all 和 sorted。

尺寸

在 Python 中,元組被分配了具有較低開銷的大塊內存,因為它們是不可變的; 而對於列表,分配的是小內存塊。 在兩者之間,元組的內存更小。 當有大量元素時,這有助於使元組比列表更快。

元素類型

屬於不同數據類型的元素,即異構元素,通常存儲在元組中。 而同質元素,即相同數據類型的元素,通常存儲在列表中。 但這不是對數據結構的限制。 相似的數據類型元素可以存儲在元組中,不同的數據類型元素也可以存儲在列表中。

長度

兩種數據結構的長度不同。 元組具有固定長度,而列表具有可變長度。 因此,可以更改創建列表的大小,但元組並非如此。

調試

在調試方面,在列表與元組中,元組由於其不變性而更容易為大型項目調試。 所以,如果項目比較小或者數據量比較少,還是用列表比較好。 這是因為列表可以更改,而元組不能,從而使元組更易於跟踪。

嵌套列表和元組

元組可以存儲在列表中,同樣,列表也可以存儲在元組中。 在嵌套元組中,一個元組可以容納更多元組。 在嵌套列表中,一個列表可以容納更多列表。

用途

重要的是要了解在不同的情況下最好使用其中一種數據結構,例如; 使用哪一種取決於程序員,即根據他們以後是否要更改數據來選擇一種。

元組可以等效於沒有鍵的字典來存儲數據。 當元組存儲在列表中時,更容易讀取數據。

閱讀: Python 中更多類型的數據結構

結論

本文有助於理解列表和元組之間的區別。 儘管這兩種類型都是 Python 中的數據結構,但在做出選擇時熟悉這些差異很重要。 要記住的最重要的區別是列表是可變的,而元組不是,列表具有可變大小而元組具有固定大小。 最後,元組中的操作可以更快地執行。

如果你正在閱讀這篇文章,你很可能有成為一名 Python 開發者的雄心壯志。 如果您有興趣學習 python 並想親身體驗各種工具和庫,請查看 IIIT-B 和 upGrad 的數據科學執行 PG 計劃。

什麼時候首選 Python 列表來存儲數據?

Python 列表被認為是在以下場景中存儲數據的最佳數據結構: 列表可用於存儲具有不同數據類型的各種值,並且可以僅通過其各自的索引進行訪問。 當您需要對元素執行數學運算時,可以使用列表,因為它允許您直接對元素進行數學運算。 由於列表可以調整大小,因此當您不確定要存儲的元素數量時,可以使用它來存儲數據。

說明namedtuple的各種操作。

Python 中的 namedtuple 執行各種操作。 以下是 namedtuple 執行的一些最常見操作的列表 - 按索引訪問、按鍵名訪問、make()、_asadict()、使用“**”(雙星)運算符、_fileds()、_replace (), 等等。

創建列表的不同方法是什麼?

可以通過此處提到的多種方式創建 Python 列表。 使用 for 循環 - for 循環是創建列表的最基本方式。 可以使用 for 循環以三種簡單的方式創建列表 - 創建一個空列表,遍歷要插入的所有元素,使用 append() 函數將每個元素附加到列表中。 使用 map():Python 中的 map() 函數可用於創建列表。 此函數接受兩個參數 - Function:映射將每個可迭代對像傳遞到的函數和 Iterable:要映射的元素或可迭代對象。 使用列表推導:此方法是所有三種方法中最優化的。 雖然在上述方法中必須首先創建一個空列表,但列表推導式允許您使用單行將所有元素插入列表中。