在本文中,您将学习如何使用 Python 数组。您将了解如何定义它们以及对它们执行操作常用的不同方法。
本文介绍了您通过导入array module. 我们不会在这里讨论 NumPy 数组。
目录
什么是 Python 数组?
数组是一种基本数据结构,也是大多数编程语言的重要组成部分。在Python中,它们是能够同时存储多个项目的容器。
具体来说,它们是元素的有序集合,每个值都具有相同的数据类型。这是关于 Python 数组需要记住的最重要的事情 - 它们只能保存相同类型的多个项目的序列。
Python 列表和 Python 数组有什么区别?
列表是 Python 中最常见的数据结构之一,也是该语言的核心部分。
列表和数组的行为类似。
就像数组一样,列表是元素的有序序列。
它们也是可变的并且大小不固定,这意味着它们可以在程序的整个生命周期中增长和缩小。可以添加和删除项目,使其使用起来非常灵活。
然而,列表和数组不是一回事。
列出 各种数据类型的存储项目。这意味着列表可以同时包含整数、浮点数、字符串或任何其他 Python 数据类型。数组的情况并非如此。
如上一节所述,数组仅存储具有相同单一数据类型的项目。有些数组仅包含整数,或仅包含浮点数,或仅包含您要使用的任何其他 Python 数据类型。
何时使用 Python 数组
列表内置于 Python 编程语言中,而数组则不然。数组不是内置数据结构,因此需要通过 导入array module才能使用。
数组array module是 C 数组的薄包装,当您想要处理同类数据时非常有用。
它们也更紧凑,占用的内存和空间更少,这使得它们比列表更有效。
如果你想进行数学计算,那么你应该通过导入 NumPy 包来使用 NumPy 数组。除此之外,您应该在真正需要时才使用 Python 数组,因为列表的工作方式类似,并且使用起来更加灵活。
如何在 Python 中使用数组
为了创建 Python 数组,您首先必须导入array module包含所有必需函数的数组。
您可以通过三种方式导入array module:
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>
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>
- 最后,您还可以使用
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所以 的长度numbers是3。
数组索引以及如何在 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. 希望本指南对您有所帮助。