列表方法append()和extend()之间有什么区别?
当前回答
这相当于使用+运算符进行追加和扩展:
>>> x = [1,2,3]
>>> x
[1, 2, 3]
>>> x = x + [4,5,6] # Extend
>>> x
[1, 2, 3, 4, 5, 6]
>>> x = x + [[7,8]] # Append
>>> x
[1, 2, 3, 4, 5, 6, [7, 8]]
其他回答
append附加一个元素。extend附加元素列表。
请注意,如果您传递一个列表进行追加,它仍然会添加一个元素:
>>> a = [1, 2, 3]
>>> a.append([4, 5, 6])
>>> a
[1, 2, 3, [4, 5, 6]]
extend(L)通过附加给定列表L中的所有项目来扩展列表。
>>> a
[1, 2, 3]
a.extend([4]) #is eqivalent of a[len(a):] = [4]
>>> a
[1, 2, 3, 4]
a = [1, 2, 3]
>>> a
[1, 2, 3]
>>> a[len(a):] = [4]
>>> a
[1, 2, 3, 4]
追加和扩展是python中的扩展机制之一。
追加:将元素添加到列表末尾。
my_list = [1,2,3,4]
要向列表中添加新元素,我们可以按以下方式使用append方法。
my_list.append(5)
将添加新元素的默认位置始终位于(长度+1)位置。
Insert:Insert方法用于克服append的限制。使用insert,我们可以明确定义新元素插入的确切位置。
insert(索引,对象)的方法描述符。它需要两个参数,第一个是要插入元素的索引,第二个是元素本身。
Example: my_list = [1,2,3,4]
my_list[4, 'a']
my_list
[1,2,3,4,'a']
扩展:当我们想将两个或多个列表合并到一个列表中时,这非常有用。如果不使用extend,如果我们想要连接两个列表,那么生成的对象将包含一个列表列表。
a = [1,2]
b = [3]
a.append(b)
print (a)
[1,2,[3]]
如果我们试图访问位置2的元素,我们会得到一个列表([3]),而不是元素。要连接两个列表,我们必须使用append。
a = [1,2]
b = [3]
a.extend(b)
print (a)
[1,2,3]
加入多个列表
a = [1]
b = [2]
c = [3]
a.extend(b+c)
print (a)
[1,2,3]
append在列表末尾附加指定的对象:
>>> x = [1, 2, 3]
>>> x.append([4, 5])
>>> print(x)
[1, 2, 3, [4, 5]]
extend通过从指定的iterable中附加元素来扩展列表:
>>> x = [1, 2, 3]
>>> x.extend([4, 5])
>>> print(x)
[1, 2, 3, 4, 5]
这相当于使用+运算符进行追加和扩展:
>>> x = [1,2,3]
>>> x
[1, 2, 3]
>>> x = x + [4,5,6] # Extend
>>> x
[1, 2, 3, 4, 5, 6]
>>> x = x + [[7,8]] # Append
>>> x
[1, 2, 3, 4, 5, 6, [7, 8]]