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

本文介绍如何在Python中通过传递列表的副本给函数,避免原始数据被修改。通过具体实例展示了如何创建并修改魔术师名字列表,同时保持原列表不变。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

标题:禁止函数修改列表

向函数传递列表的问题:
有时候,需要禁止函数修改列表。例如,你需要保留原来的列表,以供备案。
为了解决这个问题,可向函数传递列表的副本而不是原件,这样函数所做的任何修改都只影响副本,而丝毫不影响原件。
要将类表的副本传递给函数,可以进行如下操作:
    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 Marry
The Great Jack
The Great Tom

The following :
Tom
Jack
Marry


                                      --- Thank you!---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值