python extend_也谈python列表append和extend的区别

关于append和extend两个方法,网上很多人说法如下:

append() 方法向列表的尾部添加一个新的元素。只接受一个参数。

extend()方法只接受一个列表作为参数,并将该参数的每个元素都添加到原有的列表中。

但是,关于extend只接受一个列表作为参数这种说法,深表怀疑。举个栗子:extend

>>>a= [1,2,3,4]

>>> a.extend(['a','b'])

>>> a

[1, 2, 3, 4, 'a', 'b']

append

>>> a.append(['a','b'])

>>> a

[1, 2, 3, 4, 'a', 'b', ['a', 'b']]

ok,这样我们追加了一个列表是没有问题的,换个元组可以么?append

>>> a.append((1,2,3))

>>> a

[1, 2, 3, 4, 'a', 'b', ['a', 'b'], (1, 2, 3)]

>>> a.extend((4,5,6))

>>> a

[1, 2, 3, 4, 'a', 'b', ['a', 'b'], (1, 2, 3), 4, 5, 6]

依然可以,元组也可以被extend接受,并且成功追加到list中,换字典呢?extend

>>> a.extend({1:'a',2:'b'})

>>> a

[1, 2, 3, 4, 'a', 'b', ['a', 'b'], (1, 2, 3), 4, 5, 6, 1, 2]

append

>>> a.append({7:'c',5:'d'})

>>> a

[1, 2, 3, 4, 'a', 'b', ['a', 'b'], (1, 2, 3), 4, 5, 6, 1, 2, {5: 'd', 7: 'c'}]

这里我们可以发现些许不同,extend的方式扩展列表参数为字典时,被追加到列表中的只有key,value并没有被追加进去;但是使用append这种方式扩展时,将整个字典作为一个值追加到列表中了

ok,以上是可变对象,如果我们换成字符串呢?extend

>>> a.extend('123456')

>>> a

[1, 2, 3, 4, 'a', 'b', ['a', 'b'], (1, 2, 3), 4, 5, 6, 1, 2, {5: 'd', 7: 'c'}, '1', '2', '3', '4', '5', '6']

append

>>> a.append('123456')

>>> a

[1, 2, 3, 4, 'a', 'b', ['a', 'b'], (1, 2, 3), 4, 5, 6, 1, 2, {5: 'd', 7: 'c'}, '1', '2', '3', '4', '5', '6', '123456']

也是可以的。

总结:

1、append和extend都可以接受各种类型数据,但是extend参数为字典时,只会追加key到列表中。

2、append和extend都只接受一个参数

3、append接受一个参数,追加到列表中在尾部只添加一个元素,也就是说你参数是什么,列表中就追加成什么。

4、extend接受一个参数,追加到列表中时是将参数中的每一个值都追加到列表中(字典例外)

附加help信息

Help on built-in function extend:

extend(...) method of builtins.list instance

L.extend(iterable) -> None -- extend list by appending elements from the iterable

并没有说extend的参数必须是列表。

从可迭代的元素追加延长列表

以上纯属个人实验结果,如有大神有更好的解释,请多多解答,谢谢!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值