什么是Python列表中append()和+操作符工作方式的区别?
在本文中,我们将看看Python列表中append()和加号操作符之间的区别。
- 使用mutator()方法,append()方法用于向列表中添加元素。
-
使用加号操作符‘+’,创建一个能够容纳一个以上元素的新列表。
阅读更多:Python 教程
使用列表时+操作符的行为
Python使用加号操作符‘+’访问第一个列表中的每个元素。当使用加号符号时,会产生一个能容纳一个以上元素的新列表。然后必须将旧列表的元素复制到新列表中,并将新元素插入到末尾。
示例
在这个例子中,我们将看到如何使用+操作符将元素添加到Python列表中。
list =[]
n = 10
for i in range(n):
list = list+[i]
print(list)
输出
上述代码的输出如下。
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
使用+操作符添加元素的复杂度
每次迭代都必须从原始列表中复制‘i’个元素以构造一个新列表。假设访问列表中的元素所需的时间是恒定的。因此,为了计算附加n个条目到Python列表即样本列表所需的复杂度或时间,我们将所有列表访问相加,然后乘以访问和保存列表元素所需的时间。
为了计算访问和存储操作的总数,首先数一数在附加第一个元素时复制列表的访问和存储操作。已克隆一段。第二次附件需要两个复制操作。第三次附加需要三个复制操作。到目前为止,我们已经复制了以下列表元素数量。因此,时间复杂度为O(n^2)。
使用列表时append()方法的行为
告诉代码使用变异器方法添加一个成员到列表中,使用的是append()方法。它是一种节省时间的方法。
示例
以下示例说明了如何使用append()方法。
list =[]
n = 10
for i in range(n):
list.append(i)
print(list)
输出
以上代码的输出如下。
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
事实证明,在Python中使用append()方法向已存在的列表添加一个附加条目非常高效。将新项添加到列表是一个O(1)操作。因此,附加n个元素的总复杂度为O(1)。
append()方法和+操作符的区别
当使用’+‘操作符组合两个列表时,在Python中会创建一个新列表,原始对象不会被修改。另一方面,使用extend和append等方法,我们在原地添加列表,即原始对象被修改。使用append插入列表作为对象,而‘+’仅仅是连接两个列表。
示例
下面的例子演示了在列表中, + 运算符和 append 方法之间的区别。
list1=[1,2,3]
list2=['a','b']
list3=list1+list2
print("使用 + 运算符: ")
print(list3)
list1.append(list2)
print("使用 append 方法: ")
print(list1)
输出
上面的代码的输出如下。
使用 + 运算符:
[1, 2, 3, 'a', 'b']
使用 append 方法:
[1, 2, 3, ['a', 'b']]