python:复制变量的更改会影响原始变量

发布于 2021-02-02 23:15:43

我有一个清单,我创建了一个清单以进行一些操作,同时仍保留原始清单。但是,当我设置copy_list等于时org_list,它们将变为同一事物,并且如果我更改copy_list,它们org_list也会更改。例如:

org_list = ['y', 'c', 'gdp', 'cap']

copy_list = org_list

copy_list.append('hum')

print(copy_list)
print(org_list)

退货

['y', 'c', 'gdp', 'cap', 'hum']
['y', 'c', 'gdp', 'cap', 'hum']

我对实际发生的事情不太了解,但看起来org_list实际上是将自身传递给copy_list他们,因此它们实际上是同一回事。

有没有一种方法可以制作org_list的独立副本,而又不需要做一些笨拙的事情:

copy_list = []
for i in org_list:
    copy_list.append(i)

我之所以这样说,是因为我对其他类型的变量(例如熊猫数据框)也存在相同的问题。

关注者
0
被浏览
77
1 个回答
  • 面试哥
    面试哥 2021-02-02
    为面试而生,有面试问题,就找面试哥。

    那是因为在python中设置变量实际上设置了对该变量的引用。几乎每个学习python的人都会在某个时候遇到这个问题。解决方案只是复制列表:

    copy_list = org_list[:] 
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看