Python的append赋值注意事项

Python的变量存在两种类型:可变类型和不可变类型。因此,对不同类型变量的赋值存在两种模式:一种浅层次赋值(非绑定赋值);一种深层次赋值(绑定赋值)。(涉及变量的地址和数值,还没弄清楚)
当我们需要使用append函数时,需要注意:新变量的改变会影响整个相关联的变量。
例如:
a=[1,2]
b=a
b.append(3)
print(type(b),a,b)
输出的结果为:
<class ‘list’> [1, 2, 3] [1, 2, 3] 。
在实际应用过程中,会碰到一种情况:不希望变量 a 也随之变化,那么代码如何编写呢?
此时,需要用到上面所说的深层次赋值:copy函数-deepcopy。
实现的代码如下:
import copy
a=[1,2]
b= copy.deepcopy(a)
b.append(3)
print(type(b),a,b)
输出的结果为:
<class ‘list’> [1, 2] [1, 2, 3] 。
据此,代码可以实现原变量不随新变量改变的功能。

在 .append() 和 .extend()的函数中,append实现单独插入的功能,整个空格内的值都作为元素,增加到原list的末尾。
例如:
a=[1,2]
a.append(3)
a
运行:
[1,2,3]

如果:
a=[1,2]
a.append([3])
a
运行:
[1,2, [3] ]
extend()函数,则是实现列表扩展的功能,它对扩展前的数据结构和扩展数据提出一致性的要求,即原始变量和扩展变量一致。
例如:
a=[1,2]
a.extend(3,4)
a
运行报错 。

a=[1,2]
a.extend([3,4])
a
运行:
[1,2,3,4]

append()函数将()内整体数值作为元素,增加到原变量末尾
extend()函数,则要求()内的数据和原变量格式一致

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值