如果你是从C / Java / etc中的语言来的Python。家庭,它可以帮助你停止思考一个“变量”,并开始认为它作为一个“名称”。

a,b和c不是具有相等值的不同变量;它们对于相同的相同值具有不同的名称。变量具有类型,标识,地址和各种类似的东西。

名称没有任何。值当然,并且你可以有很多相同的值的名称。

如果你给臭名昭着的B.I.G.一个热狗,* Biggie Smalls和克里斯·华莱士有一个热狗。如果将a的第一个元素更改为1,则b和c的第一个元素为1。

如果你想知道两个名字是否命名同一个对象,使用is运算符:

>>> a=b=c=[0,3,5]

>>> a is b

True

然后你问:

what is different from this?

d=e=f=3

e=4

print('f:',f)

print('e:',e)

在这里,你将名字e重新绑定为值4.这不会以任何方式影响名称d和f。

在以前的版本中,您分配到[0],而不是分配给。所以,从[0]的角度来看,你重新绑定了一个[0],但从a的角度来看,你正在改变它的位置。

你可以使用id函数,它给你一个唯一的数字表示一个对象的身份,看看究竟哪个对象是哪个即使是无法帮助:

>>> a=b=c=[0,3,5]

>>> id(a)

4473392520

>>> id(b)

4473392520

>>> id(a[0])

4297261120

>>> id(b[0])

4297261120

>>> a[0] = 1

>>> id(a)

4473392520

>>> id(b)

4473392520

>>> id(a[0])

4297261216

>>> id(b[0])

4297261216

请注意,[0]已从4297261120更改为4297261216,它现在是不同值的名称。 b [0]现在也是同一个新值的名称。这是因为a和b仍然命名同一个对象。

在覆盖下,a [0] = 1实际上是在列表对象上调用一个方法。 (它相当于.__ setitem __(0,1)。)所以,它不是真的重新绑定任何东西。这就像调用my_object.set_something(1)。当然,可能的对象是重新绑定实例属性为了实现这个方法,但这不是什么重要;重要的是你不分配任何东西,你只是改变对象。它与a [0] = 1相同。

user570826问:

What if we have, a = b = c = 10

这与a = b = c = [1,2,3]的情况完全相同:对于相同的值,有三个名称。

但在这种情况下,值是一个int,int是不可变的。在任何一种情况下,你可以重新绑定一个不同的值(例如,a =“现在我是一个字符串!”),但不会影响原始值,b和c仍然是名称。区别在于,使用列表,您可以通过执行例如a.append(4)来将值[1,2,3]更改为[1,2,3,4]因为这实际上改变了b和c是名称的值,所以b现在为b [1,2,3,4]。没有办法将值10改为其他任何东西。 10是永远的,就像克劳迪娅的吸血鬼是永远的(至少直到她被克尔斯滕邓斯特取代)。

*警告:不要给臭名昭着的B.I.G.一个热狗。 Gangsta说唱僵尸不应该在午夜后喂食。

python同时赋值_Python将多个变量赋值为同一个值?列表行为相关推荐

  1. python 赋值_python编程自学笔记变量赋值数据类型格式化输出

    python编程自学笔记变量数赋值据类型格式化输出 Python自学笔记 变量 数据类型 字符串 格式化 1.变量 变量的定义 给变量赋值 name是一个变量,把"***"赋值给了 ...

  2. python 二维数组赋值_Python中多个变量的灵活处理

    我们都知道Python是一个非常灵活的语言,以至于如果它不是你的第一门语言,你会发现它总能给你各种各样的惊喜,让你忍不住惊叹:woc,还有这种操作.尤其我在系统地学习Python之前是Java后端出身 ...

  3. python变量无需创建赋值_Python 第 2 章 变量及赋值运算符

    Python 第 2 章 变量及赋值运算符 计算机语言历史演变 机器语言-汇编语言-高级语言 Python属于高级语言, 因为计算机运行的机器语言也就是二进制010101的编码, 所以我要让计算机知道 ...

  4. python数据类型变量_python的数据类型与变量

    计算机顾名思义就是可以做数学计算的机器,因此,计算机程序理所当然地可以处理各种数值.但是,计算机能处理的远不止数值,还可以处理文本.图形. 音频.视频.网页等各种各样的数据,不同的数据,需要定义不同的 ...

  5. [转载] python定义整型常量_Python笔记——数据类型、变量和常量

    参考链接: Python变量,常量和文字 数据类型 计算机顾名思义就是可以做数学计算的机器,因此,计算机程序理所当然地可以处理各种数值.但是,计算机能处理的远不止数值,还可以处理文本.图形.音频.视频 ...

  6. python setdefault函数_python中字典中的赋值技巧,update批量更新、比较setdefault方法与等于赋值...

    知识回顾: 之前这节主要学习了字典的删除,主要涉及到两个方法: 1. Pop方法:删除指定的键的键值对.需要指定一个自己已知的键,删除后返回的是键对应的值. 2. Popitem方法:删除的是最后一个 ...

  7. python编程类型_python编程 | 第二章 变量和简单数据类型

    1. 变量 message = "Hello Python world!" print(message) 添加一个名为 message 的变量 .每个变量都存储了一个值 -- 与变 ...

  8. mysql declare 赋值_sql server和mysql变量赋值的区别 以及 MySql Declare(转)

    sql server和mysql都是我们经常用到的数据库系统,下面就为您介绍sql server和mysql变量赋值的区别,希望对您能有所启迪. sql server中变量要先申明后赋值: 局部变量用 ...

  9. mysql declare 赋值_sql server和mysql变量赋值的区别 以及 MySql Declare

    sql server和mysql都是我们经常用到的数据库系统,下面就为您介绍sql server和mysql变量赋值的区别,希望对您能有所启迪. sql server中变量要先申明后赋值: 局部变量用 ...

最新文章

  1. java 二维码生成和解析
  2. 清华大学计算机专业在职博士吧,我将我的清华大学考博经验分享
  3. 如何打开设计思路,避免不断改稿?只需提前做好这一步
  4. 201521123057 《Java程序设计》第12周学习总结
  5. java如何使用promql_Prometheus 常用 PromQL 语句
  6. java swing 窗口事件_Javaswing多类窗口怎么写按钮事件呢?
  7. android file transfer下载_PHP通过header方式下载文件
  8. nginx代理https后,spring mvc web应用redirect https变成http
  9. Powershell - 获取OS版本信息和catpion信息
  10. 单目深度估计方法:算法梳理与代码实现
  11. mt4双线macd_指标之王——MACD的精髓用法,八张图完美诠释最佳买入点,牢记不愁买卖!...
  12. 【FPGA-ASK调制解调】2-ASK调制和解调的Verilog代码实现
  13. 不小心使用了私有API的后果
  14. 交互式应用安全测试(IAST)学习笔记
  15. C语言micstring函数,micSendString函数使用方法
  16. Ansible自动运维工具
  17. 银河麒麟系统开启root用户登录
  18. inject类型丢失问题
  19. 通知栏消息多种提醒方式
  20. POJ - 3179 Corral the Cows【离散化】【前缀和】

热门文章

  1. 企业网站建设的要求及策划
  2. 学习js在线html(富文本)编辑器
  3. %3chtml%3e%3c html,在JEditorPane中显示HTML的问题java
  4. elasticsearch安装和配置,elasticsearch启动报错:can not run elasticsearch as root
  5. SAP-ABAP-一般FUNCTION ALV代码示例
  6. dotnet中的counters说明(二)
  7. 洛谷 P1496 火烧赤壁
  8. cocos1.6.2升级 cocos1.9.3后 微信登陆闪退
  9. c0语言 测试用例,按照 Promise/A+ 手写Promise,通过promises-aplus-tests的全部872个测试用例...
  10. vba 窗体计时器 出现类型错误