aws ecr list-images --repository-name my_aws_ecr_repo
{
"imageIds": [
{
"imageDigest": "sha256:c115230398..."
},
{
"imageDigest": "sha256:236ce1ed44...",
"imageTag": "latest"
},
{
"imageDigest": "sha256:c1dd997eb7..."
},
{
"imageDigest": "sha256:9f61b77c31..."
}
]
}
我没有触及列表a中的数字,但它们仍然有所改变。为什么会这样? 此外,这似乎返回了预期的结果:
a = [1,2,3,4]
b = a
b[0] = 10
print a
有人可以告诉我[:]是什么以及为什么第一个代码改变了?
答案 0 :(得分:1)
Python没有传统意义上的变量。当您使用let number = formattedNumber.replacingOccurrences(of: ",", with: "")
let newNumber = Int(number)! * 2
创建内容时,您只需创建一个新的"标记" a指向该列表。
所以a = [1, 2, 3, 4]
只是创建一个名为b的新标记,指向相同的列表。如果改变b,则改变a。
在您的第二个示例中,b = a
,b = a[:]
是"切片"在这种情况下,列表将返回列表的所有值,因此b现在指向它自己的[1,2,3,4]副本,而不是副本。
如果你要做[:]
这样的事情,你可以更好地了解切片操作符的作用。