Python 中列表中的 append 和 + 运算符有何区别?

pythonprogrammingserver side programming更新于 2023/12/6 19:14:00

在本文中,我们将研究列表中的 append 和 plus 运算符有何区别。

  • 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() 方法告诉代码利用 mutator 方法向列表添加一个成员。

示例

此示例说明如何使用 append() 方法。

list =[] n = 10 for i in range(n): list.append(i) print(list)

输出

上述代码的输出如下。

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

事实证明,使用 .append() 方法在 Python 中向现有列表添加一个额外条目非常高效。向列表添加新项目是 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']]

相关文章