素手就琴 发表于 2020-11-16 16:15:02

关于变量引用问题

lst =
A = lst*3
print(A)
lst = 34
print(A)

lst =
A = *3
print(A)
lst = 34
print(A)

为什么第一段代码输出的结果是
                                                

第二段代码输出结果是[, , ]
                                 [, , ]

昨非 发表于 2020-11-16 16:23:14

本帖最后由 昨非 于 2020-11-16 16:24 编辑

第一个A是一个新的列表,不受lst变化的影响
第二个A包含lst为子列表,所以,要变化,会一起变

lst =
A = lst*3#这里相当于将lst的内容复制三份放到一个新列表A里
print(A)
lst = 34#这里修改lst的元素,对新列表没有影响
print(A)



lst =
A = *3#这里相当于将lst作为子列表复制三份存入一个列表A里
print(A)
lst = 34   #变化一个子列表的元素,所有子列表的相同位置元素跟着变
print(A)

素手就琴 发表于 2020-11-16 16:35:06

昨非 发表于 2020-11-16 16:23
第一个A是一个新的列表,不受lst变化的影响
第二个A包含lst为子列表,所以,要变化,会一起变

好的,谢谢您~
页: [1]
查看完整版本: 关于变量引用问题