伙计们,
我想有一个函数,它将列表作为输入,返回另一个列表,它是输入的修改,但我不想更改原始列表.以下代码是否是我能做的最好的代码?
另外,为了避免错误,如果我将元组(a)传递给函数modify(a)函数并将元组转换为modify(a)函数内的列表会更好吗?
非常感谢您的回复.
def modify(a):
b = a[:]
# some changes on b here
......
return b
Run Code Online (Sandbox Code Playgroud)
如果您的列表包含任何子列表,词典或其他"可变"元素,并且您的算法可能会对它们进行更改,那么oldlist[::-1]提供给您的浅列表副本是不够的.使用deepcopy模块copy制作完全独立的输入副本.
from copy import deepcopy
newlist = deepcopy(oldlist)
Run Code Online (Sandbox Code Playgroud)