python中的赋值语句

python中有两种相关类型的赋值语句:实体和名称。

  赋值语句也可以有两种形式:

  名称=实体

  名称1=名称2

  我们创建的实体保存在内存中。和声明

  名称=实体

  名称被绑定到实体。这意味着您可以使用名称来访问实体并对其进行操作。

  请遵守以下代码:

  a=[123]

  b=a

  c=b

  打印( {} {} {} )。格式(abc))

  b[0]=3

  打印( {} {} {} )。格式(abc))

  代码输出的结果是什么?

  [1, 2, 3] [1, 2, 3] [1, 2, 3]

  [3, 2, 3] [3, 2, 3] [3, 2, 3]

  如你所见,三个变量ABC被修改了。

  分别看下面两段代码和对应的输出:

  a=[123]

  b=a

  c=b

  打印( {} {} {} )。格式(abc))

  a=[456]

  打印( {} {} {} )。格式(abc))

  [1, 2, 3] [1, 2, 3] [1, 2, 3]

  [4, 5, 6] [1, 2, 3] [1, 2, 3]

  a=123

  b=a

  c=b

  打印( {} {} {} )。格式(abc))

  a=1

  打印( {} {} {} )。格式(abc))

  123 123 123

  124 123 123

  当我们修改变量A时,只有变量A是真正被修改的。

  为什么会有这两种不同?这是因为我们用不同的方式修改变量A

  第一种情况,我们通过name: A访问了内存中的实体:[123]我们直接改变了内存中的实体,而ABC的绑定关系没有改变,仍然指向实体。

  第二种情况,无论a=[456]还是a=1(实际上是a=a 1),在内存中创建一个新实体,然后将变量名A绑定到这个新实体上。原实体只有BC与之绑定。所以调用BC会得到原来的实体,而调用A不会。

  这经常发生在列表元素的使用中。因为列表元素存储在内存中,并且部分是可变的。与其他元素相比,数字类型的改变需要全新的赋值,而字符串类型不允许部分改变。

  注意列表的方法

  name.copy()

  这将在内存中创建一个新的列表,尽管内容与之前完全相同。

本文来自网络,不代表无忧安卓网立场,转载请注明出处。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值