Python 列表中append方法和+操作符的区别是什么
在本文中,我们将探讨在列表中append方法和+操作符的区别。
- append() 方法通过使用mutator()方法将元素添加到列表中。
-
+ 操作符用于创建一个具有容纳一个以上元素的新列表。
使用+操作符处理列表的行为
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()方法告诉代码使用一个变异器方法向列表中添加一个成员。
示例
这个示例解释了如何使用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("Using + operator: ")
print(list3)
list1.append(list2)
print("Using append method: ")
print(list1)
输出
上述代码的输出如下:
Using + operator:
[1, 2, 3, 'a', 'b']
Using append method:
[1, 2, 3, ['a', 'b']]