您的位置:首页 > 编程语言 > Python开发

Python中如何禁止函数修改列表

2017-03-09 18:05 405 查看

标题:禁止函数修改列表

向函数传递列表的问题:
有时候,需要禁止函数修改列表。例如,你需要保留原来的列表,以供备案。
为了解决这个问题,可向函数传递列表的副本而不是原件,这样函数所做的任何修改都只影响副本,而丝毫不影响原件。
要将类表的副本传递给函数,可以进行如下操作:
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_magician()函数
show_magicians(magicians)
运行结果:
这里写代码片
The following :The Great MarryThe Great JackThe Great TomThe following :TomJackMarry
--- Thank you!---
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  函数 Python-列表