python中的赋值语句,在python中,赋值语句规则

  python中的赋值语句,在python中,赋值语句规则

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

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

  名称=实体

  名称1=名称2

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

  名称=实体

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

  请遵守以下代码:

  a=[1,2,3]

  b=a

  c=b

  打印( {} {} {} )。格式(a、b、c))

  b[0]=3

  打印( {} {} {} )。格式(a、b、c))

  代码输出的结果是什么?

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

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

  如你所见,三个变量A、B和C被修改了。

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

  a=[1,2,3]

  b=a

  c=b

  打印( {} {} {} )。格式(a、b、c))

  a=[4,5,6]

  打印( {} {} {} )。格式(a、b、c))

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

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

  a=123

  b=a

  c=b

  打印( {} {} {} )。格式(a、b、c))

  a=1

  打印( {} {} {} )。格式(a、b、c))

  123 123 123

  124 123 123

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

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

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

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

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

  注意列表的方法

  name.copy()

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

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: