python列表里append方法和extend方法

本文详细对比了Python中列表方法append与extend的区别,包括它们如何处理不同类型的数据输入,并通过有趣的具体实例来展示这两种方法在递归引用场景下的行为差异。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

append是把参数直接传给列表,如:

list=[1,2]

list.append(3)

list就会变成[1,2,3]

而如果list.append([3])

则结果就是[1,2,[3]]


extend的参数必须是列表,即list.extend(3)语法会存在错误

如list.extend([3]),输出结果也是[1,2,3]

而list.extend([[3]])的话,输出结果则是[1,2,[3]]

可以把extend当作是去中括号的运算,并且只去掉一个中括号;不过一般人们都解释是把列表里的值添加到最后,也就是去掉最外面的括号就是它的值

append是原原本本的复制到后面去

所以二者之间是可以相互转化的

append(list)和extend([list])结果是相同的


那有趣的例子来了

list=[1]

list.append(list)和list.extend(list)结果会是什么?有什么区别?

大家可以先行尝试和思考,我把答案放在回复里




不知道为什么评论提交没有反应。。

答案就直接放在下面了

list=[1]
list.append(list)
结果是list=[1,[...]]
[...]这个是什么意思?
假如我们试着输出一下
print(list[1])
结果依旧是list=[1,[...]]
list[2]是不存在的,list[1][1]的结果依然
看到这里大家可能就会受到启发,可以先再作思考然后再看答案


[...]表示的内容是list
list.append(list)的意思是,把list添加到list的尾部,然而后一个list会不断修正前一个list,所以list[1][1][1]不论有几个[1],输出结果都是一样的
就像那句”从前有座山,山里有座庙,庙里有个小和尚在看报。小和尚看的内容是:从前有座山..."


因此在给list添加list值的时候尤其需要注意,如:
list=[1]
list1=[]
for i in range(10):
     list[0]+=1
     list1.append(list)
产生的结果是,list1里的值全部是[10],而如果append的内容是list[0]则就不会。所以二维数组的添加就可以拆分成每个元素里的两个数的添加




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值