Python中append、extend和insert的区别
Lists就像其他语言中声明的动态大小的数组一样(C++中的 vector
和Java中的 ArrayList
)。 Lists
不需要总是同质的,这使得它成为 Python 中最强大的工具。一个列表可以包含数据类型,如整数、字符串以及对象。
列表是可变的,因此,即使在创建之后,它们也可以被改变。列表有多种方法,最常用的列表方法是append(), insert(), extend()等。在这篇文章中,我们将讨论 Python 列表中 append()、insert() 和 extend() 方法之间的区别。
append方法
append方法在列表的最后添加一个元素。在 append
函数中传递的参数作为一个元素被添加到列表的末尾,列表的长度增加 1
。
语法 –
list_name.append(element)
添加的元素( element
)可以是一个字符串、整数、元组或其他列表。
示例代码:
# python program to demonstrate working of append function
# assign list
ls = ['one']
# use method
ls.append('tow')
ls.append('tree')
# display list
print(l)
运行结果:
['one', 'tow', 'tree']
insert方法
这个方法可以用来在任何需要的位置插入一个值。它需要两个参数—元素和要插入的元素的索引。
语法 –
list_name(index,element)
元素( element
)可以是字符串、对象或整数。
例子:
# python program to demonstrate working of insert function
# assign list
l = ['one', 'tree']
# use method
l.insert(1, '2')
# display list
print(l)
运行结果:
['one', '2', 'tree']
extend方法
extend方法将迭代器(元组、字符串或列表)中的每个元素附加到列表的末尾,并通过作为参数传递的迭代器的元素数量增加列表的长度。
语法:
list_name.extend(iterable)
示例代码:
# assign list
l = ['welcome', 'to']
# use method
l.extend(['yii', 'bai', '.com'])
# display list
print(l)
运行结果:
['welcome', 'to', 'yii', 'bai', '.com']
在一个程序中比较这几个方法 –
运行结果:
# Python program to demonstrate
# comparison between the three methods
# assign lists
list_a = [1, 2, 3]
list_b = [1, 2, 3]
list_c = [1, 2, 3]
a = ['a', 'b']
# use methods
list_a.append(a)
list_b.insert(3, a)
list_c.extend(a)
# display lists
print(list_a)
print(list_b)
print(list_c)
运行结果:
[1, 2, 3, [a, b]]
[1, 2, 3, [a, b]]
[1, 2, 3, a, b]
append()、insert()和extend()的区别
append() | insert() | extend() |
---|---|---|
作为参数传递的元素被追加到列表的末尾 | 作为参数传递的元素可以通过作为参数传递索引而插入到任何需要的位置。 | 作为参数传递的迭代器的每个元素都被追加到列表的末尾。 |
作为参数传递的迭代器在没有任何变化的情况下被追加到列表的末尾,成为一个单一的元素。 | 作为参数传递的迭代器作为一个单一元素毫无变化地追加到列表的所需索引。 | 作为参数传递的迭代器将把它的每个元素追加到列表的末尾。 |
列表的长度增加1 | 列表的长度增加1 | 列表的长度增加可迭代元素的数量。 |
具有O(1)的恒定时间复杂性 | 具有O(n)的线性复杂性。 | 时间复杂度为O(k),其中k是可迭代的长度。 |