标题:禁止函数修改列表
向函数传递列表的问题:
有时候,需要禁止函数修改列表。例如,你需要保留原来的列表,以供备案。
为了解决这个问题,可向函数传递列表的副本而不是原件,这样函数所做的任何修改都只影响副本,而丝毫不影响原件。
要将类表的副本传递给函数,可以进行如下操作:
function_name(
list_name[ : ]
下面是实例:
题目:
创建一个包含魔术师名字的列表,并将其传给show+magicians()的函数,这个函数打印列表中的所有魔术师名字;
编写一个make_great()函数,对魔术师列表进行修改,对每个魔术师的名字中都加入字样“the Great”,调用函数show_magicians(),确认魔术师列表确实变了;
在调用函数make_great()时,向它传递魔术师列表的副本,由于不想修改原始列表,请返回修改后的列表,并将其存储在另一个列表中,分别使用这两个列表来调用 show_magicians(),确认一个列表包含的是原来的魔术师名字,而另一个列表包含的是添加了字样"The Great"的魔术师名字。
实例代码:
def show_magicians(new_magicians):
"""显示打印好的元素"""
print(
"\nThe following : ")
for magician
in new_magicians:
print(magician.title())
def make_great(magicians,new_magicians):
while magicians:
current_magician = magicians.pop()
current_magician =
"The Great " + current_magician
new_magicians.append(current_magician)
magicians = [
'tom',
'jack',
'marry']
new_magicians = []
make_great(magicians[:],new_magicians)
show_magicians(new_magicians)
show_magicians(magicians)
运行结果:这里写代码片 The following : The Great Marry The Great Jack The Great Tom
The following : Tom Jack Marry
--- Thank you!---
转载请注明原文地址: https://ju.6miu.com/read-14611.html