Python 數組與列表:差異和用例

已發表: 2021-11-03

在過去的幾年裡,Python 在數據科學中已經超越了其他語言,它的數據結構起著至關重要的作用。 Python有大量的數據結構,其中數組和列表是我們今天要討論的最流行的。

數組和列表是 Python 中兩個突出的數據結構,它們在許多方面都相似。 它們都可以用來存儲數據,並使我們能夠對它們進行迭代、切片,甚至使用索引方法訪問它們的元素。 那麼Python中的list和array有什麼區別呢? 好吧,這就是我們將在本文中討論的內容。

目錄

Python 中的數組

數組是保存同類元素的連續數據結構,即屬於同一數據類型的元素。

以下是 Python 中數組表現出的主要特徵:

  • 數組連續性允許數據存儲在相鄰的內存位置 這使得對數組元素執行操作變得更加容易。
  • Python 中的數組可以通過兩種方式聲明
    • 使用數組模塊

import array # 導入'array'模塊

myArray = array.array('i', [10, 20, 30]) # 數組聲明

# 創建的數組:[10, 20, 30]

注意:在上述聲明中,需要指定格式代碼。 這裡,“i”是代表整數的格式代碼。

  • 使用NumPy模塊

import numpy # 導入“numpy”模塊

myArray = numpy.array([10, 20, 30]) # 數組聲明

# 創建的數組:[10, 20, 30]

  • 數組元素是有序 每個元素都有一個相關的整數索引。 例如,在 arr[10, 20, 30] 中,“10”、“20”和“30”分別存儲在內存中的索引 0、1 和 2 處。

注意: Python 中的數組索引從 0 開始。

  • 數組只能包含相同類型的值,即同質元素。 例如,

arr[1, 2, 3]

arr['a', 'b', 'c']

Python 中的數組通常用於存儲相似項的列表。 顯示器的一個真實用例可以是存儲特定股票的股票價格一段時間。 股票的收盤價在特定股票和日期保持不變。 這意味著將這些細節存儲在不可變的數據結構(如數組)中更有意義。

事實上,在數據科學和機器學習中,NumPy 數組通常用於存儲來自大型數據集的數據。 每個 NumPy 數組對應於數據集中的一個特徵。

Python 中的列表

列表是 Python 支持的四種內置容器或數據結構之一。 使用列表的主要優點之一是單個列表可以保存多種數據類型的值。

以下是 Python 中列表表現出的主要特徵:

  • 列表在數據存儲方面更加靈活。 它們可以包含異構數據,即不同類型的元素。 例如,

[1, '你好', ['x', 'y']]

  • 列表也是有序的,存儲在列表中的元素可以使用它們的索引來訪問。 負索引可用於從列表末尾訪問元素。 例如。,

myList = [20, 40, '你好', '世界']

# 打印倒數第二個元素

打印(我的列表 [-2])

輸出

  • 列表初始化可以很容易地改變列表。 要修改任何值,請使用元素的索引訪問它。

汽車 = ['福特','特斯拉','捷豹']

汽車[2] = '寶馬'

  • 多維列表也可以使用嵌套列表的概念在 Python 中實現。 這些多維列表可以用作 Python 中的多維數組。

myArr = [[1, 2], [3, 4]]

# 創建二維數組:

# |1, 2|

# |3, 4|

Python中多維異構列表的實際用例可以是存儲一組產品詳細信息,例如產品類型、類別、成本價、售價等。這樣的多維列表中的每個列表代表一個產品。 由於列表是可變的,因此我們可以隨時更改產品詳細信息。

如果您是一名有抱負的 Python 開發人員,那麼涵蓋 Python 中數組和列表之間的基本區別是一個關鍵方面。 因此,事不宜遲,讓我們直接跳到 Python 數組與列表的表格描述。

了解 Python 中數組和列表的區別

Python 數組 vs 列表:誰是贏家?

範圍

列表大批

宣言

列表不需要聲明,因為它們是 Python 內置的。

列表 = [ 10 , 20 , 30 ]

您需要導入數組模塊或NumPy庫才能聲明數組。

my_arr_1 = array.array( 'i' , [ 10 , 20 , 30 ])

數據類型

單個列表可以包含屬於不同數據類型的值。

myList = [ 40 , '你好' , 'm' ]

數組的所有元素都應具有相同的數據類型。

myArr = arr.array(i, [ 1 , 0 , 9])

尺寸

Python 列表是可調整大小的,因為在列表初始化期間,Python 會初始化一些額外的元素。 數組具有無法更改的恆定大小。

空間/

記憶

添加或刪除元素會佔用更大的空間和內存。

以更緊湊的方式存儲數據。

數據存儲

首選用於存儲少量數據。

存儲大量數據的首選

數學運算

不能直接用於數學運算。

使用高級數學運算可以輕鬆操作數組元素。

顯示數據

列表元素可以不循環顯示

my_List = [ 1 , “丹尼斯” ,[ 'a' , 'b' ]]

打印(我的列表)

要顯示數組的元素,必須有一個循環。

導入數組

my_Arr = array.array( 'i' , [ 1 , 2 , 3 ])

對於my_Arr 中的 i:

打印(一)

Python 數組 vs 列表:誰是贏家?

如果您正在閱讀本節,那麼這意味著您現在已經非常熟悉 Python 中列表和數組之間的區別。 但是,您還應該知道何時在程序中使用 Array 或 List。

本節討論您必須在這兩種情況中選擇最合適的數據結構的各種情況。

元素類型

如果數據的類型不是預先確定的,則存在屬於多種類型的數據的集合。 例如,要存儲具有name(string) ID(integer)Marks(float)等實體的學生的記錄列表是首選。

如果要存儲的數據屬於相同的數據類型,那麼這裡可以首選數組列表然後,選擇將取決於其他參數,例如數據大小、要執行的操作和使用情況。

內存消耗

列表中的內存消耗更多,因為在列表初始化期間分配了一些額外的空間。 如果數據集合相對較小,那麼這裡的列表是一個有效的選擇。

圖片來源:webcourses@UCF

數組適合存儲大量數據,因為數組的內存消耗比列表更有效。

圖片來源:webcourses@UCF

支持的操作

如果您的數據不需要任何算術運算,那麼列表可能是更好的選擇,因為它支持更好的數據操作內置函數。

另一方面,當需要進行數學運算時,應該使用數組NumPy 模塊支持許多高級數學運算,包括三角函數和對數運算。

需要導入的模塊

可以在不導入任何模塊或庫的情況下聲明列表 它可以像通常的變量一樣定義,因為它是 Python 中的內置數據結構。

但是,數組不是 Python 的默認容器之一。 有兩個最流行的模塊——arrayNumPy 每個模塊都帶有一些預定義的函數來操作和管理存儲在數組中的數據。

結論

本文涵蓋了讓您深入了解 Python 中數組和列表之間的區別所需的所有主題。 我們還討論了適合列表或數組的各種用例。

如果您想開始您的數據科學之旅,請註冊 upGrad 的數據科學 今天的課程。 查看upGrad上廣泛的課程集合 開始你的職業生涯。

何時在 Python 中的列表上使用數組?

在各種情況下,Python 數組優於列表:

1、由於Python中的數組比列表更緊湊,佔用內存更少,所以在需要存儲大量數據時,優先使用數組。
2. 當所有元素的數據類型相同時,不需要使用列表來存儲數據,因此在這裡使用數組會更有效。
3. 存儲在數組中的數據可以很容易地進行數學操作,而使用列表則非常不方便。

Python中的數組和列表之間哪個更快?

在 python 中,數組比列表更快,因為存儲在數組中的所有元素都是同質的,即它們具有相同的數據類型,而列表包含異構元素。

此外,Python 數組是用 C 實現的,這使得它比 Python 本身內置的列表快得多。

什麼時候列表更適合在 Python 中存儲數據?

Python列表在數據存儲方面意義重大,可以在多種情況下使用:

1.當你有不同數據類型的各種元素時,你可以將它們存儲在一個列表中,並且可以通過簡單地引用它們的索引來訪問這些元素。
2. 列表也可以調整大小。 因此,當您不確定元素的數量時,列表很有用。
3.當需要存儲少量數據時,列表是非常可取的,因為列表的內置函數非常方便數據操作。