python 禁止函数修改列表的实现方法


Posted in Python onAugust 03, 2017

有时候,需要禁止函数修改列表。例如要对裂变进行修改操作,也要保留原来的未打印的设计列表,以供备案。为解决这个问题,可向函数传递列表的副本而不是原件;这样函数所做的任何修改都只影响副本,而丝毫不影响原件。

function_name(list_name[:])

8-9 魔术师 魔术师 :创建一个包含魔术师名字的列表,并将其传递给一个名为show_magicians() 的函数,这个函数打印列表中每个魔术师的名字。 8-10 了不起的魔术师 了不起的魔术师 :在你为完成练习

8-9编写一个名为make_great() 的函数,对魔术师列表进行修改,在每个魔术师的名字中都加入字样“the Great”。调用函数show_magicians() ,确认魔术师列表确实变了。

8-11 不变的魔术师 不变的魔术师 :修改你为完成练习8-10而编写的程序,在调用函数make_great() 时,向它传递魔术师列表的副本。由于不想修改原始列表,请返回修改后的 列表,并将其存储到另一个列表中。分别使用这两个列表来调用show_magicians() ,确认一个列表包含的是原来的魔术师名字,而另一个列表包含的是添加了字 样“the Great”的魔术师名字。

def make_great(magicians,new_magicians): #对列表修改的函数
 while magicians:
   current_magician = magicians.pop() #删除原列表中的元素
   current_magician = "The Great " + current_magician
   new_magicians.append(current_magician)

def show_magicians(new_magicians):
 for magician in new_magicians:
  #便利所有的magicians中的元素
  print(magician) 

magicians = ['fake','ppd','moon']
new_magicians = []

make_great(magicians[:],new_magicians)#调用函数make_great 传递magicians[]副表magicians[:]
show_magicians(new_magicians)#输出新表
show_magicians(magicians)#输入原表

执行结果:

The Great moon
The Great ppd
The Great fake
fake
ppd
moon

以上这篇python 禁止函数修改列表的实现方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python time模块用法实例详解
Sep 11 Python
Python中subprocess的简单使用示例
Jul 28 Python
在Python程序和Flask框架中使用SQLAlchemy的教程
Jun 06 Python
python 简单备份文件脚本v1.0的实例
Nov 06 Python
python 将print输出的内容保存到txt文件中
Jul 17 Python
详解Django的model查询操作与查询性能优化
Oct 16 Python
使用Python做定时任务及时了解互联网动态
May 15 Python
Python namedtuple命名元组实现过程解析
Jan 08 Python
Django admin管理工具TabularInline类用法详解
May 14 Python
python中uuid模块实例浅析
Dec 29 Python
python 制作本地应用搜索工具
Feb 27 Python
详解Python为什么不用设计模式
Jun 24 Python
详解Python函数可变参数定义及其参数传递方式
Aug 02 #Python
详解Python import方法引入模块的实例
Aug 02 #Python
Python字符串拼接的几种方法整理
Aug 02 #Python
详解 Python 读写XML文件的实例
Aug 02 #Python
Python MD5加密实例详解
Aug 02 #Python
Python 获取当前所在目录的方法详解
Aug 02 #Python
浅谈python中的数字类型与处理工具
Aug 02 #Python
You might like
php之curl设置超时实例
2014/11/03 PHP
php实现在限定区域里自动调整字体大小的类实例
2015/04/02 PHP
3种方法轻松处理php开发中emoji表情的问题
2016/07/18 PHP
php判断电子邮件是否正确方法
2018/12/04 PHP
拖动布局之保存布局页面cookies篇
2010/10/29 Javascript
Javascript浅谈之引用类型
2013/12/18 Javascript
JS如何将数字类型转化为没3个一个逗号的金钱格式
2014/01/27 Javascript
基于jQuery实现网页打印功能
2015/12/01 Javascript
JS Ajax请求如何防止重复提交
2016/06/13 Javascript
谈谈JavaScript的New关键字
2016/08/26 Javascript
js前端日历控件(悬浮、拖拽、自由变形)
2017/03/02 Javascript
vue2.x select2 指令封装详解
2017/10/12 Javascript
让你5分钟掌握9个JavaScript小技巧
2018/06/09 Javascript
浅谈从React渲染流程分析Diff算法
2018/09/08 Javascript
小程序视频或音频自定义可拖拽进度条的示例代码
2018/09/30 Javascript
小程序云开发获取不到数据库记录的解决方法
2019/05/18 Javascript
JS 设计模式之:工厂模式定义与实现方法浅析
2020/05/06 Javascript
JavaScript实现滚动加载更多
2020/12/27 Javascript
js属性对象的hasOwnProperty方法的使用
2021/02/05 Javascript
[02:43]2014DOTA2国际邀请赛 官方Alliance战队纪录片
2014/07/14 DOTA
vc6编写python扩展的方法分享
2014/01/17 Python
Python初学者需要注意的事项小结(python2与python3)
2018/09/26 Python
Python Web框架之Django框架cookie和session用法分析
2019/08/16 Python
Python安装OpenCV的示例代码
2020/03/05 Python
使用python实现飞机大战游戏
2020/03/23 Python
你正在寻找的CSS3 动画技术
2011/07/27 HTML / CSS
亚马逊中国官方网站:amazon.cn
2017/05/25 全球购物
优秀班干部事迹材料
2014/01/26 职场文书
家长对小学生的评语
2014/01/28 职场文书
网络技术专业求职信
2014/02/18 职场文书
十佳少先队员演讲稿
2014/09/12 职场文书
起诉离婚协议书样本
2014/11/25 职场文书
Spring中bean的生命周期之getSingleton方法
2021/06/30 Java/Android
SQL实现LeetCode(177.第N高薪水)
2021/08/04 MySQL
Windows server 2012 配置Telnet以及用法详解
2022/04/28 Servers
mysql sql常用语句大全
2022/06/21 MySQL