Python - 陣列



Python中的陣列

與C++或Java等其他程式語言不同,Python沒有內建的陣列支援。但是,Python有幾種資料型別,例如列表和元組(尤其是列表),通常用作陣列,但是,這些型別的序列中儲存的專案不必是相同型別。

此外,我們可以使用array模組建立和運算元組。在繼續之前,讓我們先了解一下一般的陣列。

什麼是陣列?

一個陣列是一個容器,它可以容納固定數量的專案,並且這些專案應該是相同型別。儲存在陣列中的每個專案稱為元素,它們可以是任何型別,包括整數、浮點數、字串等。

這些元素儲存在連續的記憶體位置。陣列中每個元素的位置都有一個從0開始的數字索引。這些索引用於標識和訪問元素。

陣列表示

陣列表示為多個容器的集合,其中每個容器儲存一個元素。這些容器的索引從“0”到“n-1”,其中n是該特定陣列的大小。

在不同的語言中,陣列的宣告方式多種多樣。下面是一個示例:

Python Array Representation

根據上圖,以下是要考慮的重要幾點:

  • 索引從0開始。

  • 陣列長度為10,這意味著它可以儲存10個元素。

  • 每個元素都可以透過其索引訪問。例如,我們可以獲取索引為6的元素為9。

在Python中建立陣列

要在Python中建立陣列,請匯入`array`模組並使用其array() 函式。我們可以使用此函式建立三種基本型別的陣列,即整數、浮點數和Unicode字元。

array() 函式接受型別程式碼和初始化器作為引數值,並返回一個數組類物件。

語法

在Python中建立陣列的語法為:

# importing 
import array as array_name

# creating array
obj = array_name.array(typecode[, initializer])

其中,

  • typecode − 用於指定陣列中元素型別的型別程式碼字元。

  • initializer − 這是一個可選值,用於初始化陣列。它必須是列表、類似位元組的物件或適當型別的可迭代元素。

示例

以下示例演示如何使用`array`模組在Python中建立陣列。

import array as arr

# creating an array with integer type
a = arr.array('i', [1, 2, 3])
print (type(a), a)

# creating an array with char type
a = arr.array('u', 'BAT')
print (type(a), a)

# creating an array with float type
a = arr.array('d', [1.1, 2.2, 3.3])
print (type(a), a)

它將產生以下輸出

<class 'array.array'> array('i', [1, 2, 3])
<class 'array.array'> array('u', 'BAT')
<class 'array.array'> array('d', [1.1, 2.2, 3.3])

Python陣列型別由單個字元的Typecode引數決定。型別程式碼和陣列的預期資料型別如下所示:

typecode Python資料型別 位元組大小
'b' 有符號整數 1
'B' 無符號整數 1
'u' Unicode字元 2
'h' 有符號整數 2
'H' 無符號整數 2
'i' 有符號整數 2
'I' 無符號整數 2
'l' 有符號整數 4
'L' 無符號整數 4
'q' 有符號整數 8
'Q' 無符號整數 8
'f' 浮點數 4
'd' 浮點數 8

Python陣列的基本操作

以下是陣列支援的基本操作:

  • 遍歷 − 逐個列印所有陣列元素。

  • 插入 − 在給定索引處新增元素。

  • 刪除 − 刪除給定索引處的元素。

  • 搜尋 − 使用給定索引或值搜尋元素。

  • 更新 − 更新給定索引處的元素。

訪問陣列元素

我們可以使用元素的索引訪問陣列的每個元素。

示例

以下程式碼演示如何訪問陣列元素。

from array import *
array1 = array('i', [10,20,30,40,50])
print (array1[0])
print (array1[2])

編譯並執行上述程式後,將產生以下結果:

10
30

插入操作

在插入操作中,我們將一個或多個數據元素插入陣列。根據需求,可以在陣列的開頭、結尾或任何給定索引處新增新元素。

示例

在這裡,我們使用Python內建的`insert()`方法在陣列中間新增一個數據元素。

from array import *
array1 = array('i', [10,20,30,40,50])
array1.insert(1,60)
for x in array1:
 print(x)

編譯並執行上述程式後,將產生以下結果,顯示元素已插入到索引位置1。

10
60
20
30
40
50

刪除操作

刪除是指從陣列中移除現有元素並重新組織陣列的所有元素。

在這裡,我們使用Python內建的`remove()`方法刪除陣列中間的資料元素。

from array import *
array1 = array('i', [10,20,30,40,50])
array1.remove(40)
for x in array1:
   print(x)

編譯並執行上述程式後,將產生以下結果,顯示元素已從陣列中刪除。

10
20
30
50

搜尋操作

您可以對陣列執行搜尋操作,以根據其值或索引查詢陣列元素。

示例

在這裡,我們使用Python內建的`index()`方法搜尋資料元素:

from array import *
array1 = array('i', [10,20,30,40,50])
print (array1.index(40))

編譯並執行上述程式後,它將顯示所搜尋元素的索引。如果陣列中不存在該值,則將返回錯誤。

3

更新操作

更新操作是指更新給定索引處陣列中的現有元素。在這裡,我們只需將新值重新分配給要更新的所需索引。

示例

在此示例中,我們正在更新索引2處陣列元素的值。

from array import *
array1 = array('i', [10,20,30,40,50])
array1[2] = 80
for x in array1:
   print(x)

執行上述程式後,將產生以下結果,顯示索引位置2處的新值。

10
20
80
40
50
廣告