经过试验,总结出 python 中 append 和 extend 的异同点如下表:
Func | Same Point | Difference |
---|---|---|
append | 只能作用于 list 型数据,每次只能输入 单 参数 | 只能以 单元素 的形式被 添加到 list 尾部,list层级数加1 |
extend | 同上 | 只能以 list 的形式被 连接到 list 尾部,不改变list层级数 |
代码示例0:
list = ('Hello', 1, '@')
list
('Hello', 1, '@')
list.append('#')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'tuple' object has no attribute 'append'
list.extend('#')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'tuple' object has no attribute 'extend'
AttributeError: ‘tuple’ object has no attribute ‘append’、 ‘extend’:说明append、 extend只能作用于 list 型数据。
代码示例1:
list = ['Hello', 1, '@']
list.append(2)
list
['Hello', 1, '@', 2, 3]
list = ['Hello', 1, '@', 2]
list.append((3, 4))
list
['Hello', 1, '@', 2, (3, 4)]
list.append([3, 4])
list
['Hello', 1, '@', 2, (3, 4), [3, 4]]
list.append(3, 4)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: append() takes exactly one argument (2 given)
list.extend([5, 6])
list
['Hello', 1, '@', 2, (3, 4), [3, 4], 5, 6]
list.extend((5, 6))
list
['Hello', 1, '@', 2, (3, 4), [3, 4], 5, 6, 5, 6]
list.extend(5, 6)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: extend() takes exactly one argument (2 given)
TypeError: append() takes exactly one argument、TypeError: extend() takes exactly one argument:说明append、 extend每次只能输入单参数。