首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >列表a=列表b与列表a=列表b[:]

列表a=列表b与列表a=列表b[:]
EN

Stack Overflow用户
提问于 2017-10-28 03:58:17
回答 1查看 103关注 0票数 1
代码语言:javascript
复制
a = [1,2,3,4]
b = a
b[0] = 10
print a

我没有碰过列表a中的数字,但它们仍然在变化。这一切为什么要发生?此外,这似乎返回了预期的结果:

代码语言:javascript
复制
a = [1,2,3,4]
b = a[:]
b[0] = 10
print a

谁能告诉我第一段代码是什么以及为什么第一段代码更改了?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-10-28 04:06:23

Python没有传统意义上的变量。当您使用a = [1, 2, 3, 4]创建某些内容时,您只是创建一个指向该列表的新的“标记”a。

因此,b = a只是创建一个名为b的新标记,它指向相同的列表。如果你改变了b,你改变了a。

在第二个示例中,b = a[:][:]是“切片”列表,在本例中,列表将返回列表的所有值,因此b现在指向它自己的副本1、2、3、4,而不是副本。

如果您要执行类似于b = a[1:3]的操作,那么您可以更好地了解片操作符的功能。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46986086

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档