Python 数组教程 – 定义、索引、方法

210 阅读6分钟

在本文中,您将学习如何使用 Python 数组。您将了解如何定义它们以及对它们执行操作常用的不同方法。

本文介绍了您通过导入array module. 我们不会在这里讨论 NumPy 数组。

目录

什么是 Python 数组?

Python 列表和 Python 数组有什么区别?

何时使用 Python 数组

如何在 Python 中使用数组

如何在 Python 中定义数组

如何在 Python 中查找数组的长度

数组索引以及如何在 Python 中访问数组中的单个项目

如何在 Python 中搜索数组

如何在 Python 中循环数组

如何在 Python 中对数组进行切片

Python 中对数组执行操作的方法

如何更改数组中项目的值

如何向数组添加新值

如何从数组中删除值

结论


什么是 Python 数组?

数组是一种基本数据结构,也是大多数编程语言的重要组成部分。在Python中,它们是能够同时存储多个项目的容器。

具体来说,它们是元素的有序集合,每个值都具有相同的数据类型。这是关于 Python 数组需要记住的最重要的事情 - 它们只能保存相同类型的多个项目的序列。

Python 列表和 Python 数组有什么区别?

列表是 Python 中最常见的数据结构之一,也是该语言的核心部分。

列表和数组的行为类似。

就像数组一样,列表是元素的有序序列。

它们也是可变的并且大小不固定,这意味着它们可以在程序的整个生命周期中增长和缩小。可以添加和删除项目,使其使用起来非常灵活。

然而,列表和数组不是一回事

列出 各种数据类型的存储项目。这意味着列表可以同时包含整数、浮点数、字符串或任何其他 Python 数据类型。数组的情况并非如此。

如上一节所述,数组仅存储具有相同单一数据类型的项目。有些数组仅包含整数,或仅包含浮点数,或仅包含您要使用的任何其他 Python 数据类型。

何时使用 Python 数组

列表内置于 Python 编程语言中,而数组则不然。数组不是内置数据结构,因此需要通过 导入array module才能使用。

数组array module是 C 数组的薄包装,当您想要处理同类数据时非常有用。

它们也更紧凑,占用的内存和空间更少,这使得它们比列表更有效。

如果你想进行数学计算,那么你应该通过导入 NumPy 包来使用 NumPy 数组。除此之外,您应该在真正需要时才使用 Python 数组,因为列表的工作方式类似,并且使用起来更加灵活。

如何在 Python 中使用数组

为了创建 Python 数组,您首先必须导入array module包含所有必需函数的数组。

您可以通过三种方式导入array module

  1. import array通过在文件顶部使用。这包括模块array。然后,您将继续使用创建一个数组array.array()
<span style="color:var(--gray85)"><code class="language-python"><span style="color:#0077aa">import</span> array

<span style="color:#708090">#how you would create an array</span>
array<span style="color:#999999">.</span>array<span style="color:#999999">(</span><span style="color:#999999">)</span>
</code></span>

  1. array.array()您可以import array as arr在文件顶部使用而不是单独使用,而不必一直键入import array。然后,您可以通过键入创建一个数组arr.array()。充当arr别名,数组构造函数紧随其后。
<span style="color:var(--gray85)"><code class="language-python"><span style="color:#0077aa">import</span> array <span style="color:#0077aa">as</span> arr

<span style="color:#708090">#how you would create an array</span>
arr<span style="color:#999999">.</span>array<span style="color:#999999">(</span><span style="color:#999999">)</span>
</code></span>

  1. 最后,您还可以使用from array import **导入所有可用的功能。然后,您可以通过单独编写构造函数来创建一个数组array()
<span style="color:var(--gray85)"><code class="language-python"><span style="color:#0077aa">from</span> array <span style="color:#0077aa">import</span> <span style="background-color:rgba(255, 255, 255, 0.5)"><span style="color:#9a6e3a">*</span></span>

<span style="color:#708090">#how you would create an array</span>
array<span style="color:#999999">(</span><span style="color:#999999">)</span>
</code></span>

如何在 Python 中定义数组

导入后array module,您就可以继续定义 Python 数组。

创建数组的一般语法如下所示:

<span style="color:var(--gray85)"><code class="language-python">variable_name <span style="background-color:rgba(255, 255, 255, 0.5)"><span style="color:#9a6e3a">=</span></span> array<span style="color:#999999">(</span>typecode<span style="color:#999999">,</span><span style="color:#999999">[</span>elements<span style="color:#999999">]</span><span style="color:#999999">)</span>
</code></span>

让我们来分解一下:

  • variable_name将是数组的名称。
  • 指定typecode数组中将存储哪种类型的元素。无论是整数数组、浮点数数组还是任何其他 Python 数据类型的数组。请记住,所有元素应该具有相同的数据类型。
  • 在方括号内,您提到elements将存储在数组中,每个元素用逗号分隔。您还可以通过仅单独写入而不包含任何元素来创建空数组。 variable_name = array(typecode)

下面是一个类型代码表,其中包含定义 Python 数组时可与不同数据类型一起使用的不同类型代码:

类型代码C型PYTHON类型尺寸
'b'签名字符整数1
'B'无符号字符整数1
'u'wchar_t统一码字符2
'H'签名短整数2
'H'无符号短整数2
'l'有符号整数整数2
'l'无符号整数整数2
'l'长签整数4
'L'无符号长整数4
'q'签名长长整数8
'Q'无符号长长整数8
'F'漂浮漂浮4
'd'双倍的漂浮8

将所有内容结合在一起,下面是如何在 Python 中定义数组的示例:

<span style="color:var(--gray85)"><code class="language-python"><span style="color:#0077aa">import</span> array <span style="color:#0077aa">as</span> arr 

numbers <span style="background-color:rgba(255, 255, 255, 0.5)"><span style="color:#9a6e3a">=</span></span> arr<span style="color:#999999">.</span>array<span style="color:#999999">(</span><span style="color:#669900">'i'</span><span style="color:#999999">,</span><span style="color:#999999">[</span><span style="color:#990055">10</span><span style="color:#999999">,</span><span style="color:#990055">20</span><span style="color:#999999">,</span><span style="color:#990055">30</span><span style="color:#999999">]</span><span style="color:#999999">)</span>


<span style="color:#0077aa">print</span><span style="color:#999999">(</span>numbers<span style="color:#999999">)</span>

<span style="color:#708090">#output</span>

<span style="color:#708090">#array('i', [10, 20, 30])</span>
</code></span>

让我们来分解一下:

  • 首先,我们包含了数组模块,在本例中为import array as arr .
  • 然后,我们创建了一个numbers数组。
  • 我们使用arr.array()是因为import array as arr .
  • array()构造函数中,我们首先包含i, 表示有符号整数。有符号整数意味着数组可以包含正值负值。例如,无符号整数H意味着不允许负值。
  • 最后,我们将要存储在数组中的值包含在方括号中。

请记住,如果您尝试包含非i类型代码的值(这意味着它们不是整数值),您将收到错误消息:

<span style="color:var(--gray85)"><code class="language-python"><span style="color:#0077aa">import</span> array <span style="color:#0077aa">as</span> arr 

numbers <span style="background-color:rgba(255, 255, 255, 0.5)"><span style="color:#9a6e3a">=</span></span> arr<span style="color:#999999">.</span>array<span style="color:#999999">(</span><span style="color:#669900">'i'</span><span style="color:#999999">,</span><span style="color:#999999">[</span><span style="color:#990055">10.0</span><span style="color:#999999">,</span><span style="color:#990055">20</span><span style="color:#999999">,</span><span style="color:#990055">30</span><span style="color:#999999">]</span><span style="color:#999999">)</span>


<span style="color:#0077aa">print</span><span style="color:#999999">(</span>numbers<span style="color:#999999">)</span>

<span style="color:#708090">#output</span>

<span style="color:#708090">#Traceback (most recent call last):</span>
<span style="color:#708090"># File "/Users/dionysialemonaki/python_articles/demo.py", line 14, in <module></span>
<span style="color:#708090">#   numbers = arr.array('i',[10.0,20,30])</span>
<span style="color:#708090">#TypeError: 'float' object cannot be interpreted as an integer</span>
</code></span>

在上面的示例中,我尝试在数组中包含浮点数。我收到错误,因为这只是一个整数数组。

创建数组的另一种方法如下:

<span style="color:var(--gray85)"><code class="language-python"><span style="color:#0077aa">from</span> array <span style="color:#0077aa">import</span> <span style="background-color:rgba(255, 255, 255, 0.5)"><span style="color:#9a6e3a">*</span></span>

<span style="color:#708090">#an array of floating point values</span>
numbers <span style="background-color:rgba(255, 255, 255, 0.5)"><span style="color:#9a6e3a">=</span></span> array<span style="color:#999999">(</span><span style="color:#669900">'d'</span><span style="color:#999999">,</span><span style="color:#999999">[</span><span style="color:#990055">10.0</span><span style="color:#999999">,</span><span style="color:#990055">20.0</span><span style="color:#999999">,</span><span style="color:#990055">30.0</span><span style="color:#999999">]</span><span style="color:#999999">)</span>

<span style="color:#0077aa">print</span><span style="color:#999999">(</span>numbers<span style="color:#999999">)</span>

<span style="color:#708090">#output</span>

<span style="color:#708090">#array('d', [10.0, 20.0, 30.0])</span>
</code></span>

上面的示例导入了array moduleviafrom array import *并创建了一个 float 数据类型的数组numbers。这意味着它仅包含由类型代码指定的浮点数'd'

如何在 Python 中查找数组的长度

要找出数组中包含的确切元素数,请使用内置len()方法。

它将返回等于您指定的数组中元素总数的整数。

<span style="color:var(--gray85)"><code class="language-python"><span style="color:#0077aa">import</span> array <span style="color:#0077aa">as</span> arr 

numbers <span style="background-color:rgba(255, 255, 255, 0.5)"><span style="color:#9a6e3a">=</span></span> arr<span style="color:#999999">.</span>array<span style="color:#999999">(</span><span style="color:#669900">'i'</span><span style="color:#999999">,</span><span style="color:#999999">[</span><span style="color:#990055">10</span><span style="color:#999999">,</span><span style="color:#990055">20</span><span style="color:#999999">,</span><span style="color:#990055">30</span><span style="color:#999999">]</span><span style="color:#999999">)</span>


<span style="color:#0077aa">print</span><span style="color:#999999">(</span><span style="color:#669900">len</span><span style="color:#999999">(</span>numbers<span style="color:#999999">)</span><span style="color:#999999">)</span>

<span style="color:#708090">#output</span>
<span style="color:#708090"># 3</span>
</code></span>

在上面的例子中,数组包含三个元素 -10, 20, 30所以 的长度numbers3

数组索引以及如何在 Python 中访问数组中的单个项目

数组中的每个项目都有一个特定的地址。通过引用其索引号来访问各个项目。

Python 以及所有编程语言和一般计算中的索引从 开始0。重要的是要记住,计数是从 开始的0,而不是从 开始的1

要访问元素,首先编写数组名称,后跟方括号。在方括号内包含该项目的索引号。

一般语法看起来像这样:

<span style="color:var(--gray85)"><code class="language-python">array_name<span style="color:#999999">[</span>index_value_of_item<span style="color:#999999">]</span>
</code></span>

以下是访问数组中每个单独元素的方法:

<span style="color:var(--gray85)"><code class="language-python"><span style="color:#0077aa">import</span> array <span style="color:#0077aa">as</span> arr 

numbers <span style="background-color:rgba(255, 255, 255, 0.5)"><span style="color:#9a6e3a">=</span></span> arr<span style="color:#999999">.</span>array<span style="color:#999999">(</span><span style="color:#669900">'i'</span><span style="color:#999999">,</span><span style="color:#999999">[</span><span style="color:#990055">10</span><span style="color:#999999">,</span><span style="color:#990055">20</span><span style="color:#999999">,</span><span style="color:#990055">30</span><span style="color:#999999">]</span><span style="color:#999999">)</span>

<span style="color:#0077aa">print</span><span style="color:#999999">(</span>numbers<span style="color:#999999">[</span><span style="color:#990055">0</span><span style="color:#999999">]</span><span style="color:#999999">)</span> <span style="color:#708090"># gets the 1st element</span>
<span style="color:#0077aa">print</span><span style="color:#999999">(</span>numbers<span style="color:#999999">[</span><span style="color:#990055">1</span><span style="color:#999999">]</span><span style="color:#999999">)</span> <span style="color:#708090"># gets the 2nd element</span>
<span style="color:#0077aa">print</span><span style="color:#999999">(</span>numbers<span style="color:#999999">[</span><span style="color:#990055">2</span><span style="color:#999999">]</span><span style="color:#999999">)</span> <span style="color:#708090"># gets the 3rd element</span>

<span style="color:#708090">#output</span>

<span style="color:#708090">#10</span>
<span style="color:#708090">#20</span>
<span style="color:#708090">#30</span>
</code></span>

请记住,数组最后一个元素的索引值始终比数组长度小一。其中n是数组的长度,n - 1将是最后一项的索引值。

请注意,您还可以使用负索引访问每个单独的元素。

使用负索引时,最后一个元素的索引为-1,倒数第二个元素的索引为-2,依此类推。

以下是使用该方法获取数组中每个项目的方法:

<span style="color:var(--gray85)"><code class="language-python"><span style="color:#0077aa">import</span> array <span style="color:#0077aa">as</span> arr 

numbers <span style="background-color:rgba(255, 255, 255, 0.5)"><span style="color:#9a6e3a">=</span></span> arr<span style="color:#999999">.</span>array<span style="color:#999999">(</span><span style="color:#669900">'i'</span><span style="color:#999999">,</span><span style="color:#999999">[</span><span style="color:#990055">10</span><span style="color:#999999">,</span><span style="color:#990055">20</span><span style="color:#999999">,</span><span style="color:#990055">30</span><span style="color:#999999">]</span><span style="color:#999999">)</span>

<span style="color:#0077aa">print</span><span style="color:#999999">(</span>numbers<span style="color:#999999">[</span><span style="background-color:rgba(255, 255, 255, 0.5)"><span style="color:#9a6e3a">-</span></span><span style="color:#990055">1</span><span style="color:#999999">]</span><span style="color:#999999">)</span> <span style="color:#708090">#gets last item</span>
<span style="color:#0077aa">print</span><span style="color:#999999">(</span>numbers<span style="color:#999999">[</span><span style="background-color:rgba(255, 255, 255, 0.5)"><span style="color:#9a6e3a">-</span></span><span style="color:#990055">2</span><span style="color:#999999">]</span><span style="color:#999999">)</span> <span style="color:#708090">#gets second to last item</span>
<span style="color:#0077aa">print</span><span style="color:#999999">(</span>numbers<span style="color:#999999">[</span><span style="background-color:rgba(255, 255, 255, 0.5)"><span style="color:#9a6e3a">-</span></span><span style="color:#990055">3</span><span style="color:#999999">]</span><span style="color:#999999">)</span> <span style="color:#708090">#gets first item</span>
 
<span style="color:#708090">#output</span>

<span style="color:#708090">#30</span>
<span style="color:#708090">#20</span>
<span style="color:#708090">#10</span>
</code></span>

如何在 Python 中搜索数组

您可以使用该方法找出元素的索引号index()

将要搜索的元素的值作为参数传递给该方法,并返回该元素的索引号。

<span style="color:var(--gray85)"><code class="language-python"><span style="color:#0077aa">import</span> array <span style="color:#0077aa">as</span> arr 

numbers <span style="background-color:rgba(255, 255, 255, 0.5)"><span style="color:#9a6e3a">=</span></span> arr<span style="color:#999999">.</span>array<span style="color:#999999">(</span><span style="color:#669900">'i'</span><span style="color:#999999">,</span><span style="color:#999999">[</span><span style="color:#990055">10</span><span style="color:#999999">,</span><span style="color:#990055">20</span><span style="color:#999999">,</span><span style="color:#990055">30</span><span style="color:#999999">]</span><span style="color:#999999">)</span>

<span style="color:#708090">#search for the index of the value 10</span>
<span style="color:#0077aa">print</span><span style="color:#999999">(</span>numbers<span style="color:#999999">.</span>index<span style="color:#999999">(</span><span style="color:#990055">10</span><span style="color:#999999">)</span><span style="color:#999999">)</span>

<span style="color:#708090">#output</span>

<span style="color:#708090">#0</span>
</code></span>

如果有多个元素具有相同的值,则将返回该值的第一个实例的索引:

<span style="color:var(--gray85)"><code class="language-python"><span style="color:#0077aa">import</span> array <span style="color:#0077aa">as</span> arr 


numbers <span style="background-color:rgba(255, 255, 255, 0.5)"><span style="color:#9a6e3a">=</span></span> arr<span style="color:#999999">.</span>array<span style="color:#999999">(</span><span style="color:#669900">'i'</span><span style="color:#999999">,</span><span style="color:#999999">[</span><span style="color:#990055">10</span><span style="color:#999999">,</span><span style="color:#990055">20</span><span style="color:#999999">,</span><span style="color:#990055">30</span><span style="color:#999999">,</span><span style="color:#990055">10</span><span style="color:#999999">,</span><span style="color:#990055">20</span><span style="color:#999999">,</span><span style="color:#990055">30</span><span style="color:#999999">]</span><span style="color:#999999">)</span>

<span style="color:#708090">#search for the index of the value 10</span>
<span style="color:#708090">#will return the index number of the first instance of the value 10</span>
<span style="color:#0077aa">print</span><span style="color:#999999">(</span>numbers<span style="color:#999999">.</span>index<span style="color:#999999">(</span><span style="color:#990055">10</span><span style="color:#999999">)</span><span style="color:#999999">)</span>

<span style="color:#708090">#output</span>

<span style="color:#708090">#0</span>
</code></span>

如何在 Python 中循环数组

您已经了解了如何访问数组中的每个单独元素并将其单独打印出来。

您还了解了如何使用该方法打印数组print()。该方法给出以下结果:

<span style="color:var(--gray85)"><code class="language-python"><span style="color:#0077aa">import</span> array <span style="color:#0077aa">as</span> arr 

numbers <span style="background-color:rgba(255, 255, 255, 0.5)"><span style="color:#9a6e3a">=</span></span> arr<span style="color:#999999">.</span>array<span style="color:#999999">(</span><span style="color:#669900">'i'</span><span style="color:#999999">,</span><span style="color:#999999">[</span><span style="color:#990055">10</span><span style="color:#999999">,</span><span style="color:#990055">20</span><span style="color:#999999">,</span><span style="color:#990055">30</span><span style="color:#999999">]</span><span style="color:#999999">)</span>

<span style="color:#0077aa">print</span><span style="color:#999999">(</span>numbers<span style="color:#999999">)</span>

<span style="color:#708090">#output</span>

<span style="color:#708090">#array('i', [10, 20, 30])</span>
</code></span>

如果你想一一打印每个值怎么办?

这就是循环派上用场的地方。您可以循环遍历数组并在每次循环迭代时一一打印出每个值。

为此,您可以使用一个简单的for循环:

<span style="color:var(--gray85)"><code class="language-python"><span style="color:#0077aa">import</span> array <span style="color:#0077aa">as</span> arr 

numbers <span style="background-color:rgba(255, 255, 255, 0.5)"><span style="color:#9a6e3a">=</span></span> arr<span style="color:#999999">.</span>array<span style="color:#999999">(</span><span style="color:#669900">'i'</span><span style="color:#999999">,</span><span style="color:#999999">[</span><span style="color:#990055">10</span><span style="color:#999999">,</span><span style="color:#990055">20</span><span style="color:#999999">,</span><span style="color:#990055">30</span><span style="color:#999999">]</span><span style="color:#999999">)</span>

<span style="color:#0077aa">for</span> number <span style="color:#0077aa">in</span> numbers<span style="color:#999999">:</span>
    <span style="color:#0077aa">print</span><span style="color:#999999">(</span>number<span style="color:#999999">)</span>
    
<span style="color:#708090">#output</span>
<span style="color:#708090">#10</span>
<span style="color:#708090">#20</span>
<span style="color:#708090">#30</span>
</code></span>

您还可以使用该range()函数,并将该len()方法作为其参数传递。这将产生与上面相同的结果:

<span style="color:var(--gray85)"><code class="language-python"><span style="color:#0077aa">import</span> array <span style="color:#0077aa">as</span> arr  

values <span style="background-color:rgba(255, 255, 255, 0.5)"><span style="color:#9a6e3a">=</span></span> arr<span style="color:#999999">.</span>array<span style="color:#999999">(</span><span style="color:#669900">'i'</span><span style="color:#999999">,</span><span style="color:#999999">[</span><span style="color:#990055">10</span><span style="color:#999999">,</span><span style="color:#990055">20</span><span style="color:#999999">,</span><span style="color:#990055">30</span><span style="color:#999999">]</span><span style="color:#999999">)</span>

<span style="color:#708090">#prints each individual value in the array</span>
<span style="color:#0077aa">for</span> value <span style="color:#0077aa">in</span> <span style="color:#669900">range</span><span style="color:#999999">(</span><span style="color:#669900">len</span><span style="color:#999999">(</span>values<span style="color:#999999">)</span><span style="color:#999999">)</span><span style="color:#999999">:</span>
    <span style="color:#0077aa">print</span><span style="color:#999999">(</span>values<span style="color:#999999">[</span>value<span style="color:#999999">]</span><span style="color:#999999">)</span>

<span style="color:#708090">#output</span>

<span style="color:#708090">#10</span>
<span style="color:#708090">#20</span>
<span style="color:#708090">#30</span>
</code></span>

如何在 Python 中对数组进行切片

要访问数组内特定范围的值,请使用切片运算符,它是一个冒号:

0当使用切片运算符并且仅包含一个值时,默认从 开始计数。它获取第一项,并上升到但不包括您指定的索引号。

<span style="color:var(--gray85)"><code class="language-python">
<span style="color:#0077aa">import</span> array <span style="color:#0077aa">as</span> arr 

<span style="color:#708090">#original array</span>
numbers <span style="background-color:rgba(255, 255, 255, 0.5)"><span style="color:#9a6e3a">=</span></span> arr<span style="color:#999999">.</span>array<span style="color:#999999">(</span><span style="color:#669900">'i'</span><span style="color:#999999">,</span><span style="color:#999999">[</span><span style="color:#990055">10</span><span style="color:#999999">,</span><span style="color:#990055">20</span><span style="color:#999999">,</span><span style="color:#990055">30</span><span style="color:#999999">]</span><span style="color:#999999">)</span>

<span style="color:#708090">#get the values 10 and 20 only</span>
<span style="color:#0077aa">print</span><span style="color:#999999">(</span>numbers<span style="color:#999999">[</span><span style="color:#999999">:</span><span style="color:#990055">2</span><span style="color:#999999">]</span><span style="color:#999999">)</span>  <span style="color:#708090">#first to second position</span>

<span style="color:#708090">#output</span>

<span style="color:#708090">#array('i', [10, 20])</span>
</code></span>

当您传递两个数字作为参数时,您指定了一个数字范围。在这种情况下,计数从范围中第一个数字的位置开始,直到但不包括第二个数字:

<span style="color:var(--gray85)"><code class="language-python"><span style="color:#0077aa">import</span> array <span style="color:#0077aa">as</span> arr 

<span style="color:#708090">#original array</span>
numbers <span style="background-color:rgba(255, 255, 255, 0.5)"><span style="color:#9a6e3a">=</span></span> arr<span style="color:#999999">.</span>array<span style="color:#999999">(</span><span style="color:#669900">'i'</span><span style="color:#999999">,</span><span style="color:#999999">[</span><span style="color:#990055">10</span><span style="color:#999999">,</span><span style="color:#990055">20</span><span style="color:#999999">,</span><span style="color:#990055">30</span><span style="color:#999999">]</span><span style="color:#999999">)</span>


<span style="color:#708090">#get the values 20 and 30 only</span>
<span style="color:#0077aa">print</span><span style="color:#999999">(</span>numbers<span style="color:#999999">[</span><span style="color:#990055">1</span><span style="color:#999999">:</span><span style="color:#990055">3</span><span style="color:#999999">]</span><span style="color:#999999">)</span> <span style="color:#708090">#second to third position</span>

<span style="color:#708090">#output</span>

<span style="color:#708090">#array('i', [20, 30])</span>
</code></span>

Python 中对数组执行操作的方法

数组是可变的,这意味着它们是可变的。您可以更改不同项目的值、添加新项目或删除程序中不再需要的任何项目。

让我们看看一些最常用的用于对数组执行操作的方法。

如何更改数组中项目的值

您可以通过指定特定元素的位置并为其分配新值来更改其值:

<span style="color:var(--gray85)"><code class="language-python"><span style="color:#0077aa">import</span> array <span style="color:#0077aa">as</span> arr 

<span style="color:#708090">#original array</span>
numbers <span style="background-color:rgba(255, 255, 255, 0.5)"><span style="color:#9a6e3a">=</span></span> arr<span style="color:#999999">.</span>array<span style="color:#999999">(</span><span style="color:#669900">'i'</span><span style="color:#999999">,</span><span style="color:#999999">[</span><span style="color:#990055">10</span><span style="color:#999999">,</span><span style="color:#990055">20</span><span style="color:#999999">,</span><span style="color:#990055">30</span><span style="color:#999999">]</span><span style="color:#999999">)</span>

<span style="color:#708090">#change the first element</span>
<span style="color:#708090">#change it from having a value of 10 to having a value of 40</span>
numbers<span style="color:#999999">[</span><span style="color:#990055">0</span><span style="color:#999999">]</span> <span style="background-color:rgba(255, 255, 255, 0.5)"><span style="color:#9a6e3a">=</span></span> <span style="color:#990055">40</span>

<span style="color:#0077aa">print</span><span style="color:#999999">(</span>numbers<span style="color:#999999">)</span>

<span style="color:#708090">#output</span>

<span style="color:#708090">#array('i', [40, 20, 30])</span>
</code></span>

如何向数组添加新值

要在数组末尾添加一个值,请使用以下append()方法:

<span style="color:var(--gray85)"><code class="language-python"><span style="color:#0077aa">import</span> array <span style="color:#0077aa">as</span> arr 

<span style="color:#708090">#original array</span>
numbers <span style="background-color:rgba(255, 255, 255, 0.5)"><span style="color:#9a6e3a">=</span></span> arr<span style="color:#999999">.</span>array<span style="color:#999999">(</span><span style="color:#669900">'i'</span><span style="color:#999999">,</span><span style="color:#999999">[</span><span style="color:#990055">10</span><span style="color:#999999">,</span><span style="color:#990055">20</span><span style="color:#999999">,</span><span style="color:#990055">30</span><span style="color:#999999">]</span><span style="color:#999999">)</span>

<span style="color:#708090">#add the integer 40 to the end of numbers</span>
numbers<span style="color:#999999">.</span>append<span style="color:#999999">(</span><span style="color:#990055">40</span><span style="color:#999999">)</span>

<span style="color:#0077aa">print</span><span style="color:#999999">(</span>numbers<span style="color:#999999">)</span>

<span style="color:#708090">#output</span>

<span style="color:#708090">#array('i', [10, 20, 30, 40])</span>
</code></span>

请注意,您添加的新项目需要与数组中的其余项目具有相同的数据类型。

看看当我尝试将浮点数添加到整数数组时会发生什么:

<span style="color:var(--gray85)"><code class="language-python"><span style="color:#0077aa">import</span> array <span style="color:#0077aa">as</span> arr 

<span style="color:#708090">#original array</span>
numbers <span style="background-color:rgba(255, 255, 255, 0.5)"><span style="color:#9a6e3a">=</span></span> arr<span style="color:#999999">.</span>array<span style="color:#999999">(</span><span style="color:#669900">'i'</span><span style="color:#999999">,</span><span style="color:#999999">[</span><span style="color:#990055">10</span><span style="color:#999999">,</span><span style="color:#990055">20</span><span style="color:#999999">,</span><span style="color:#990055">30</span><span style="color:#999999">]</span><span style="color:#999999">)</span>

<span style="color:#708090">#add the float 40.0 to the end of numbers</span>
numbers<span style="color:#999999">.</span>append<span style="color:#999999">(</span><span style="color:#990055">40.0</span><span style="color:#999999">)</span>

<span style="color:#0077aa">print</span><span style="color:#999999">(</span>numbers<span style="color:#999999">)</span>

<span style="color:#708090">#output</span>

<span style="color:#708090">#Traceback (most recent call last):</span>
<span style="color:#708090">#  File "/Users/dionysialemonaki/python_articles/demo.py", line 19, in <module></span>
<span style="color:#708090">#   numbers.append(40.0)</span>
<span style="color:#708090">#TypeError: 'float' object cannot be interpreted as an integer</span>
</code></span>

但是,如果您想向数组末尾添加多个值怎么办?

使用该extend()方法,该方法采用可迭代对象(例如项目列表)作为参数。再次确保新项目都是相同的数据类型。

<span style="color:var(--gray85)"><code class="language-python"><span style="color:#0077aa">import</span> array <span style="color:#0077aa">as</span> arr 

<span style="color:#708090">#original array</span>
numbers <span style="background-color:rgba(255, 255, 255, 0.5)"><span style="color:#9a6e3a">=</span></span> arr<span style="color:#999999">.</span>array<span style="color:#999999">(</span><span style="color:#669900">'i'</span><span style="color:#999999">,</span><span style="color:#999999">[</span><span style="color:#990055">10</span><span style="color:#999999">,</span><span style="color:#990055">20</span><span style="color:#999999">,</span><span style="color:#990055">30</span><span style="color:#999999">]</span><span style="color:#999999">)</span>

<span style="color:#708090">#add the integers 40,50,60 to the end of numbers</span>
<span style="color:#708090">#The numbers need to be enclosed in square brackets</span>

numbers<span style="color:#999999">.</span>extend<span style="color:#999999">(</span><span style="color:#999999">[</span><span style="color:#990055">40</span><span style="color:#999999">,</span><span style="color:#990055">50</span><span style="color:#999999">,</span><span style="color:#990055">60</span><span style="color:#999999">]</span><span style="color:#999999">)</span>

<span style="color:#0077aa">print</span><span style="color:#999999">(</span>numbers<span style="color:#999999">)</span>

<span style="color:#708090">#output</span>

<span style="color:#708090">#array('i', [10, 20, 30, 40, 50, 60])</span>
</code></span>

如果您不想将项目添加到数组末尾怎么办?使用该insert()方法,在特定位置添加项目。

insert()函数有两个参数:新元素将插入的位置的索引号和新元素的值。

<span style="color:var(--gray85)"><code class="language-python"><span style="color:#0077aa">import</span> array <span style="color:#0077aa">as</span> arr 

<span style="color:#708090">#original array</span>
numbers <span style="background-color:rgba(255, 255, 255, 0.5)"><span style="color:#9a6e3a">=</span></span> arr<span style="color:#999999">.</span>array<span style="color:#999999">(</span><span style="color:#669900">'i'</span><span style="color:#999999">,</span><span style="color:#999999">[</span><span style="color:#990055">10</span><span style="color:#999999">,</span><span style="color:#990055">20</span><span style="color:#999999">,</span><span style="color:#990055">30</span><span style="color:#999999">]</span><span style="color:#999999">)</span>

<span style="color:#708090">#add the integer 40 in the first position</span>
<span style="color:#708090">#remember indexing starts at 0</span>

numbers<span style="color:#999999">.</span>insert<span style="color:#999999">(</span><span style="color:#990055">0</span><span style="color:#999999">,</span><span style="color:#990055">40</span><span style="color:#999999">)</span>

<span style="color:#0077aa">print</span><span style="color:#999999">(</span>numbers<span style="color:#999999">)</span>

<span style="color:#708090">#output</span>

<span style="color:#708090">#array('i', [40, 10, 20, 30])</span>
</code></span>

如何从数组中删除值

要从数组中删除元素,请使用该remove()方法并将该值作为该方法的参数。

<span style="color:var(--gray85)"><code class="language-python"><span style="color:#0077aa">import</span> array <span style="color:#0077aa">as</span> arr 

<span style="color:#708090">#original array</span>
numbers <span style="background-color:rgba(255, 255, 255, 0.5)"><span style="color:#9a6e3a">=</span></span> arr<span style="color:#999999">.</span>array<span style="color:#999999">(</span><span style="color:#669900">'i'</span><span style="color:#999999">,</span><span style="color:#999999">[</span><span style="color:#990055">10</span><span style="color:#999999">,</span><span style="color:#990055">20</span><span style="color:#999999">,</span><span style="color:#990055">30</span><span style="color:#999999">]</span><span style="color:#999999">)</span>

numbers<span style="color:#999999">.</span>remove<span style="color:#999999">(</span><span style="color:#990055">10</span><span style="color:#999999">)</span>

<span style="color:#0077aa">print</span><span style="color:#999999">(</span>numbers<span style="color:#999999">)</span>

<span style="color:#708090">#output</span>

<span style="color:#708090">#array('i', [20, 30])</span>
</code></span>

使用 时remove(),只会删除作为参数传递的值的第一个实例。

看看当有多个相同值时会发生什么:

<span style="color:var(--gray85)"><code class="language-python">
<span style="color:#0077aa">import</span> array <span style="color:#0077aa">as</span> arr 

<span style="color:#708090">#original array</span>
numbers <span style="background-color:rgba(255, 255, 255, 0.5)"><span style="color:#9a6e3a">=</span></span> arr<span style="color:#999999">.</span>array<span style="color:#999999">(</span><span style="color:#669900">'i'</span><span style="color:#999999">,</span><span style="color:#999999">[</span><span style="color:#990055">10</span><span style="color:#999999">,</span><span style="color:#990055">20</span><span style="color:#999999">,</span><span style="color:#990055">30</span><span style="color:#999999">,</span><span style="color:#990055">10</span><span style="color:#999999">,</span><span style="color:#990055">20</span><span style="color:#999999">]</span><span style="color:#999999">)</span>

numbers<span style="color:#999999">.</span>remove<span style="color:#999999">(</span><span style="color:#990055">10</span><span style="color:#999999">)</span>

<span style="color:#0077aa">print</span><span style="color:#999999">(</span>numbers<span style="color:#999999">)</span>

<span style="color:#708090">#output</span>

<span style="color:#708090">#array('i', [20, 30, 10, 20])</span>
</code></span>

10仅删除第一次出现的。

您还可以使用该pop()方法,并指定要删除的元素的位置:

<span style="color:var(--gray85)"><code class="language-python"><span style="color:#0077aa">import</span> array <span style="color:#0077aa">as</span> arr 

<span style="color:#708090">#original array</span>
numbers <span style="background-color:rgba(255, 255, 255, 0.5)"><span style="color:#9a6e3a">=</span></span> arr<span style="color:#999999">.</span>array<span style="color:#999999">(</span><span style="color:#669900">'i'</span><span style="color:#999999">,</span><span style="color:#999999">[</span><span style="color:#990055">10</span><span style="color:#999999">,</span><span style="color:#990055">20</span><span style="color:#999999">,</span><span style="color:#990055">30</span><span style="color:#999999">,</span><span style="color:#990055">10</span><span style="color:#999999">,</span><span style="color:#990055">20</span><span style="color:#999999">]</span><span style="color:#999999">)</span>

<span style="color:#708090">#remove the first instance of 10</span>
numbers<span style="color:#999999">.</span>pop<span style="color:#999999">(</span><span style="color:#990055">0</span><span style="color:#999999">)</span>

<span style="color:#0077aa">print</span><span style="color:#999999">(</span>numbers<span style="color:#999999">)</span>

<span style="color:#708090">#output</span>

<span style="color:#708090">#array('i', [20, 30, 10, 20])</span>
</code></span>

结论

现在您已经了解了如何在 Python 中使用array module. 希望本指南对您有所帮助。