在 Python 中数组是可变的吗?使 Python 成为动态类型语言的特征之一是对象的可变性。当一个东西是可变的,这意味着它可以改变或能够改变。对象改变其值的能力在 Python 中被称为可变性。存储数据集合的对象经常被称为可变对象。
当不能随着时间的推移进行修改时,它被称为不可变的。Python中的不可变对象是指其值不随时间变化的对象。
这些项一旦形成就有一个不确定的值。在 Python 中,数组是一个可变的对象。在这篇文章中,我们将学习关于数组可变性的所有知识,以及可以对其进行的各种操作。让我们开始吧,好吗?
什么是 Python 中的数组?
数组是一种数据结构,可以同时携带多个值。它是相同类型的元素的分组或序列。通过指定索引号,我们可以很容易地在数组对象中循环,并检索出相关的值。因为数组也是可变的(changeable),你可以根据需要进行许多操作。
语法
a=arr.array(data type,value list)
例子:
a=arr.array( ‘d’ , [1,2,3,4,5] )
这里的第一个参数是 "d",也就是这里的数据类型整数。第二个参数包含数值。
数组在Python中的使用
当你需要使用大量相同类型的变量时,Python数组就会派上用场。它也可以用来记录大量的信息。当你需要以动态方式处理数据时,数组会非常有用。Python 中的数组大大快于列表,因为它们消耗的内存更少。
例如,如果你要保存 1 到 100 的整数,你将无法记住 100 个变量名,但你可以使用数组方便地保存它们。
Python 中的数组是可变的
数组在Python中是完全可变的数据类型。让我们来学习如何对数组进行编辑,以及在编辑Python数组时有哪些选项可以确认其可变性。
1.在一个数组中添加新元素或改变新元素
append(), extend()和insert(i, x)函数可以用来向数组添加元素。当我们需要在一个数组的末尾添加一个元素时,我们利用append()函数。
让我们看一下下面的例子。
a=arr.array('d', [1,2,3,4] )
a.append(5)
print(a)
输出
array(‘d’, [1,2,3,4,5])
结果数组是原始数组,末端添加了一个新值。extend()函数可以用来添加一个以上的元素。这个函数的参数是一个元素的列表。要添加到数组中的元素被输入到这个列表中。
a=arr.array('d', [1, 2 ,3] )
a.extend([4,5,6])
print(a)
输出
array(‘d’, [1,2,3,4,5,6])
所有在数组末尾添加的三个新元素都将包含在结果数组中。
另一方面,insert(i,x)函数可以用来将一个特定的元素添加到数组中的一个指定位置。这个函数将元素放在数组中指定的索引处。第一个参数是要添加元素的索引,第二个参数是元素的值。
a=arr.array('d', [1,2,3] )
a.insert(3,4)
print(a)
输出
array(‘d’, [1,2,3,4])
值4出现在结果数组的第四位。
2.2. 数组的连接可以用+符号来完成。
a=arr.array('d',[3.4,5.6,8.9,2.5])
b=arr.array('d',[4.5,6.7])
c=arr.array('d')
c=a+b
print("Array c = ",c)
输出:数组的连接元素
Array c= array(‘d’, [3.4,5.6,8.9,2.5])
数组a和b的连接元素构成了结果数组c。
3.3. 从数组中移除或删除元素
pop()和remove()方法可以用来从一个数组中删除元素。这两个函数的区别在于,第一个函数返回删除的值,而第二个函数不返回。
pop()函数要么不接受参数,要么接受索引值作为其参数。当没有指定参数时,这个函数返回被popped()的最后一个元素。当手动指定索引值时,pop()函数会弹出并返回相应的项目。
a=arr.array('d', [1,2,3,4,5,6,7,8])
print(a.pop())
print(a.pop(3))
输出
8
4
第一个pop()方法删除了最后一个值8,并将其返回,而第二个pop()函数弹出了第四个位置的值4,并将其返回。
另一方面,remove()函数用来摆脱一个我们不希望被返回的值。这个函数的参数是元素值本身。如果你把索引值放在参数中,它将会抛出一个错误。
a=arr.array('d',[1, 2 ,3])
a.remove(1)
print(a)
输出
array(‘d’, [2,3])
除了1以外,输出是一个包含所有元素的数组。
总结
综上所述,我们已经了解了数组和它们的可变属性,以及你可以对它们进行的各种类型的操作。Python 对可变和不可变对象的处理是不同的。因为改变不可变的对象需要生成一个副本,所以它们的访问速度更快,而改变的成本更高。另一方面,可变的东西,则很容易改变。