Python中使用函数切片可以创建副本,保留原本。现在给出如下代码
1 magicians_list = ['mole','jack','lucy'] 2 new_lists = [] 3 def make_great(names,new_list): 4 for num in range(len(names)): 5 names[num]= "the Great "+names[num] 6 new_list.append(names[num]) 7 def show_magicians(names): 8 print("magicians' name are:") 9 for name in names: 10 print(" "+name.title()) 11 12 make_great(magicians_list[:], new_lists) 13 14 show_magicians(magicians_list) 15 show_magicians(new_lists)
上述代码的作用:将列表ori_lists中的元素修改成,元素前面添加一个“the Great”,并传送到空列表new_lists中,但不允许修改原列表,并通过连个函数分别实现复制和显示的功能
第12行代码的,实参中我们使用magicians_list[:]在内存中创建了magicians_lis的副本,这样,传递到函数形参的就是副本,从而不是影响原列表的内容:
程序执行结果如下:
可见:原列表并未发生改变,而新列表在原列表的内容上添加了“the Great ”.