Python中的数组–什么是Python数组以及如何使用它们?

举报
Yuchuan 发表于 2021/02/27 21:47:25 2021/02/27
【摘要】 什么是Python数组以及如何使用它们

Python中的数组是可以容纳相同类型的多个值的数据结构。通常,它们被误解为列表或Numpy数组。从技术上讲,Python中的数组与这两者截然不同。因此,让我们继续前进,看看什么是Python中的数组以及如何实现。

这是主题的概述,它解释了处理数组的所有方面:

      1. 为什么要在Python中使用数组?
      2. 什么是Python中的数组?
      3. Python列表与数组相同吗?
      4. 在Python中创建数组
      5. 在Python中访问元素
      6. 如何找到数组的长度?
      7. 基本阵列操作

为什么要在Python中使用数组?

结合使用Array和Python可以节省大量时间。如前所述,数组可以帮助您减少代码的整体大小,而Python可以帮助您摆脱有问题的语法,这与其他语言不同。例如如果必须存储1到100之间的整数,则将无法显式记住100个变量名,因此,可以使用数组轻松保存它们。

基本数组结构-Python中的数组-Edureka

现在您已经知道了数组在Python中的重要性,下面让我们详细研究它。

什么是Python中的数组?

数组基本上是一种数据结构,一次可以容纳多个值。它是相同类型元素的集合或有序序列。

范例

a=arr.array('d',[1.2,1.3,2.3])

我们可以轻松地遍历数组项,只需指定索引号即可获取所需的值。数组也是可变的(可变的),因此,您可以根据需要执行各种操作。

现在,总有一个问题浮现在我们的脑海–

Python列表与数组相同吗?

Python数组和列表以相似的方式存储值。但是两者之间有一个关键的区别,即它们存储的值。列表可以存储任何类型的值,例如整数,字符串等。另一方面,数组存储单个数据类型的值。因此,您可以具有整数数组,字符串数组等。

Python还提供 numpy数组,是数据科学中使用的值的网格您可以查看Numpy数组与列表,以了解更多信息。

在Python中创建数组:

可以在导入数组模块之后按以下方式在Python中创建数组–

→将数组导入为arr

array(data type,value list)函数具有两个参数,第一个是要存储的值的数据类型,第二个是值列表。数据类型可以是int,float,double等任何类型。请注意,arr是别名,并且易于使用。您也可以不带别名导入。导入数组模块的另一种方法是–

→         从数组导入*

这意味着您要从阵列模块导入所有功能。

以下语法用于创建数组。

语法

a=arr.array(data type,value list)           #when you import using arr alias

或者

a=array(data type,value list)               #when you import using *

示例:a = arr.array('d',[1.1,2.1,3.1])

在这里,第一个参数是“ d”,它是一种数据类型,即float,并且将值指定为下一个参数。

注意事项

指定的所有值均为float类型。我们不能为单个数组指定不同数据类型的值。

下表显示了各种数据类型及其代码。

Type code Python Data Type Byte size
i int 2
I int 2
u unicode character 2
h int 2
H int 2
l int 4
L int 4
f float 4
d float 8

在Python中访问数组元素

要访问数组元素,您需要指定索引值。索引从0开始而不是从1开始。因此,索引号始终比数组的长度小1。

语法

Array_name [索引值]

范例

a=arr.array( 'd', [1.1 , 2.1 ,3.1] )
a[1]

输出

2.1

返回的输出是值,该值出现在我们数组的第二个位置,即2.1。

现在让我们看一些基本的数组操作。

基本数组操作 

可以对数组执行许多操作,如下所示–

基本数组操作-Python中的数组-Edureka

查找数组的长度

数组的长度是数组中实际存在的元素数。您可以 使用len()函数来实现此目的。len()函数返回一个整数值,该值等于该数组中存在的元素数。

语法

→len(数组名)

范例

a=arr.array('d', [1.1 , 2.1 ,3.1] )
len(a)

输出–  3

这将返回值3,该值等于数组元素的数量。

添加/更改数组元素:

我们可以通过使用append()extend()insert(i,x)函数将值添加到数组。

当我们需要在数组末尾添加单个元素时,将使用append()函数。

范例

a=arr.array('d', [1.1 , 2.1 ,3.1] )
a.append(3.4)
print(a)

输出

array('d',[1.1,2.1,3.1,3.4])

结果数组是实际数组,在其末尾添加了新值。要添加多个元素,可以使用extend()函数。此函数将元素列表作为其参数。该列表的内容是要添加到数组中的元素。

范例

a=arr.array('d', [1.1 , 2.1 ,3.1] )
a.extend([4.5,6.3,6.8])
print(a)

输出

array('d',[1.1,2.1,3.1,4.5,6.3,6.8])

结果数组将包含添加到数组末尾的所有3个新元素。

但是,当您需要在数组中的特定位置添加特定元素时,可以使用insert(i,x)函数。此函数将元素插入数组中的相应索引处。它有2个参数,第一个参数是需要插入元素的索引,第二个参数是值。

范例

a=arr.array('d', [1.1 , 2.1 ,3.1] )
a.insert(2,3.8)
print(a)

输出 

array('d',[1.1,2.1,3.8,3.1])

结果数组在数组的第3个位置包含值3.8。

数组也可以通过执行数组串联来合并。

数组串联:

可以使用+符号将任意两个数组连接起来。 

范例
a=arr.array('d',[1.1 , 2.1 ,3.1,2.6,7.8])
b=arr.array('d',[3.7,8.6])
c=arr.array('d')
c=a+b
print("Array c = ",c)

输出 -

数组c = array('d',[1.1,2.1,3.1,2.6,7.8,3.7,8.6])

所得数组c包含数组a和b的串联元素。

现在,让我们看看如何从数组中删除或删除项目。

删除/删除数组元素

可以使用pop()remove()方法删除数组元素。这两个函数之间的区别在于,前者返回删除的值,而后者不返回。

pop()函数不使用任何参数或将索引值用作其参数。如果未提供任何参数,则此函数将弹出最后一个元素并返回它。当您显式提供索引值时,pop()函数将弹出所需的元素并返回它。

范例

a=arr.array('d', [1.1, 2.2, 3.8, 3.1, 3.7, 1.2, 4.6])
print(a.pop())
print(a.pop(3))

输出 -

4.6
3.1

第一个pop()函数删除最后一个值4.6并返回相同的值,而第二个函数在第4个位置弹出值3.1并返回相同的值。

另一方面,remove()函数用于删除不需要返回删除值的位置的值。此函数将元素值本身作为参数。如果在参数插槽中提供索引值,则将引发错误。

范例

a=arr.array('d',[1.1 , 2.1 ,3.1])
a.remove(1.1)
print(a)

输出 -

array('d',[2.1,3.1])

输出是一个包含除1.1之外的所有元素的数组。

当您要从数组中获取特定范围的值时,可以对数组进行切片以返回相同的值,如下所示。

切片数组

可以使用:符号对数组进行切片。这将返回我们由索引号指定的一系列元素。

范例

a=arr.array('d',[1.1 , 2.1 ,3.1,2.6,7.8])
print(a[0:3])

输出

array('d',[1.1,2.1,3.1])

结果将是元素出现在数组的第一,第二和第三位置。

遍历数组:

使用for循环,我们可以遍历一个数组。

范例
a=arr.array('d', [1.1, 2.2, 3.8, 3.1, 3.7, 1.2, 4.6])
print("All values")
for x in a: 
print(x)
print("specific values")
for x in a[1:3]: 
print(x)

输出 

所有值

1.1
2.2
3.8
3.1
3.7
1.2
4.6
特定值
2.2
3.8
上面的输出显示了使用for循环的结果。当我们使用不带任何特定参数的for循环时,结果包含一次给定一个数组的所有元素。在第二个for循环中,结果仅包含使用索引值指定的元素。请注意,结果不包含索引号3的值。 
希望您对本教程中与您共享的所有内容一清二楚。这使我们结束了关于Python中的数组的文章的结尾。确保尽可能多地练习并恢复经验。  

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。