【发布时间】:2021-09-04 16:55:18
【问题描述】:
python 中的变量在实际使用中是有效的指针。赋值运算符“=”会自动创建一个有效指针——除非它是基本类型(称为不可变)。基本数据类型的示例包括:int、float、str 和 bool。这些数据类型的赋值不使用指针。
另一方面,指针在分配时使用:lists、dicts、class 对象等。
当我需要按值分配后一种类型的变量(例如列表)时,这令人沮丧。
例如:
background = [1, 1, 0, 2, 2]
screen = background
background[2] = 8
print(background) # [1, 1, 8, 2, 2]
print(screen) # [1, 1, 8, 2, 2]
# However, I did NOT want screen to change
这个可以吗?
【问题讨论】:
-
在这种简单的情况下,您可以制作列表的浅表副本,例如
screen = background[:],对于更复杂的类型,您应该查看 docs.python.org/3/library/copy.html
标签: python variables variable-assignment