首页 / PYTHON / 理解Python引用
理解Python引用
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了理解Python引用,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含830字,纯文字阅读大概需要2分钟。
内容图文
![理解Python引用](/upload/InfoBanner/zyjiaocheng/724/6a074be68edd46a79ce8a4e50f54acc5.jpg)
鉴于python中的所有内容都是通过引用,我确实理解下面的代码中发生了什么:
a = ['one']*3 // a = ['one', 'one', 'one']
b = [a]*3 // b = [['one', 'one', 'one'], ['one', 'one', 'one'], ['one', 'one', 'one']]
b[1][2] = 'two'
现在,b是
[['one', 'one', 'two'], ['one', 'one', 'two'], ['one', 'one', 'two']]
因为我们将b引用了三次相同的对象,重新分配任何一个组件,所以在三个地方看到了变化.
但是,为什么同样的事情发生时
a = [['one']]*3 // a = [['one'], ['one'], ['one']]
a[1] = ['two']
不会使= [‘two’,’two’,’two’],而只是[[‘one’],[‘two’],[‘one’],好像现在有三个不同的对象指向.
我在这里错过了一些逻辑吗?
提前致谢,
尼基尔
解决方法:
您没有更改[1]的内容,而是将其重新绑定为指向单独的数组.这对[0]和[2]没有影响.
请尝试以下方法:
In [4]: a = [['one']]*3
In [5]: a[1][0] = 'two'
In [6]: a
Out[6]: [['two'], ['two'], ['two']]
内容总结
以上是互联网集市为您收集整理的理解Python引用全部内容,希望文章能够帮你解决理解Python引用所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。