我想根据科目将学生分组到两个不同的列表中,但该功能无法创建不同的列表。我知道在两种情况下创建的列表实例是相同的,但我无法找到可行的解决方案。
def add_tolist(name, students=[]):
students.append(name)
return students
idc306 = add_tolist('ram')
idc101 = add_tolist('shyam')
idc101 = add_tolist('deepa',idc101)
print idc101, idc306
结果应该是:["希亚姆","迪帕"]["公羊"]
但它的印刷:["拉姆"、"希亚姆"、"迪帕"]["拉姆"、"希亚姆"、"迪帕"]
我认为
问题是您的程序将新列表视为不是一个独特的新副本,这将解决这个问题。
def add_tolist(name, students=[]):
students1 = students.copy()
students1.append(name)
return students1
idc306 = add_tolist('ram')
idc101 = add_tolist('shyam')
idc101 = add_tolist('deepa',idc101)
print (idc101, idc306)
输出: ["希亚姆", "迪帕"] ["公羊"]