我需要一个将列表重置为其原始状态的函数,所以为了做到这一点,我将使用列表的副本作为实现列表的最直接方式。将创建列表副本的函数
每当我对列表(或列表数量)进行更改时,我希望列出其原始状态列表。由于列表的数量可以更大,我需要一个可以处理它的函数,而不必每次都重复几行代码。
我试图做一个函数,只是简单地创建一个列表的副本,因此我可以用它来获得一个原始列表的副本进一步的改动。 但有件事,我很想念,因为即时得到错误:
list1=[1,2,3]
list2=['a','b','c']
list3=[434,52,43]
def copy_lists():
list1c=list1[:]
list2c=list2[:]
list3c=list3[:]
copy_lists()
list1c.append('b')
copy_lists()
#now list1c should be back to orginal
print(list1c)
---------------------------------------------------------------------------
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
<ipython-input-5-95468ead1e78> in <module>()
9
10 copy_lists()
---> 11 list1c.append('b')
12 copy_lists()
NameError: name 'list1c' is not defined
'list1c'是一个局部变量,只在'copy_lists'内定义。 –
深度拷贝可能会为您做到这一点:https://docs.python.org/3.6/library/copy.html –
不要(尝试)使用如此多的全局变量。以列表形式作为参数进行复制,然后将这些副本返回到一个元组(或另一个列表)中。 – chepner