这个问题很容易理解,这里是程序 -
hisc = [1,2,3,4]
print("\n", hisc)
ohisc = hisc
hisc.append(5)
print("\nPreviously...", ohisc)
print("\nAnd now...", hisc)
input("\nETE")
Run Code Online (Sandbox Code Playgroud)
当我运行它时ohisc获得5.为什么ohisc会改变?如何阻止它改变?如果这是显而易见的事情,请道歉.
Python变量是引用.因此,赋值复制引用而不是变量的内容.
为了避免这种情况,您所要做的就是创建一个新对象:
ohisc = list(hisc)
Run Code Online (Sandbox Code Playgroud)
这是使用list构造函数,它从给定的iterable创建一个新列表.
或者,您也可以从切片(创建新对象)进行分配:
ohisc = hisc[:]
Run Code Online (Sandbox Code Playgroud)
[]是一般切片运算符,用于从给定集合中提取子集.我们简单地省略了开始和结束位置(它们分别默认为集合的开头和结尾).
| 归档时间: |
|
| 查看次数: |
99 次 |
| 最近记录: |