Python 中列表的 append 和 + 运算符的工作原理有什么区别?
在本文中,我们将了解 append 和 列表 中的加号运算符之间的区别。
append() 方法 用于通过使用 修改器() 方法 向列表中添加元素。
'+' 运算符用于创建一个新的列表,该列表具有容纳一个更多元素的容量。
+ 运算符在处理列表时的行为
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]
事实证明,使用 .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']]