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中isalnum()方法的使用
May 18 Python
python制作小说爬虫实录
Aug 14 Python
python使用magic模块进行文件类型识别方法
Dec 08 Python
Python matplotlib学习笔记之坐标轴范围
Jun 28 Python
python字符串切割:str.split()与re.split()的对比分析
Jul 16 Python
python+Django实现防止SQL注入的办法
Oct 31 Python
Python 输出详细的异常信息(traceback)方式
Apr 08 Python
python 在threading中如何处理主进程和子线程的关系
Apr 25 Python
Python基于smtplib模块发送邮件代码实例
May 29 Python
Python绘图之二维图与三维图详解
Aug 04 Python
使用jupyter notebook运行python和R的步骤
Aug 13 Python
python gui开发——制作抖音无水印视频下载工具(附源码)
Feb 07 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
yii2 上传图片的示例代码
2018/11/02 PHP
不错的asp中显示新闻的功能
2006/10/13 Javascript
地址栏上的一段语句,改变页面的风格。(教程)
2008/04/02 Javascript
jQuery 对象中的类数组操作
2009/04/27 Javascript
jquery 学习之二 属性相关
2010/11/23 Javascript
js实现快速分享功能(你的文章分享工具)
2013/06/25 Javascript
javascript教程:关于if简写语句优化的方法
2014/05/17 Javascript
jQuery()方法的第二个参数详解
2015/04/29 Javascript
一看就懂:jsonp详解
2015/06/01 Javascript
原生JS实现平滑回到顶部组件
2016/03/16 Javascript
jQuery实现div横向拖拽排序的简单实例
2016/07/13 Javascript
详解vue之页面缓存问题(基于2.0)
2017/01/10 Javascript
详解vue.js的devtools安装
2017/05/26 Javascript
通过源码分析Vue的双向数据绑定详解
2017/09/24 Javascript
vue页面跳转后返回原页面初始位置方法
2018/02/11 Javascript
angular项目中bootstrap-datetimepicker时间插件的使用示例
2018/03/15 Javascript
ES6 Class中实现私有属性的一些方法总结
2019/07/08 Javascript
微信小程序的授权实现过程解析
2019/08/02 Javascript
python学习必备知识汇总
2017/09/08 Python
Python编程实现二分法和牛顿迭代法求平方根代码
2017/12/04 Python
Python机器学习之scikit-learn库中KNN算法的封装与使用方法
2018/12/14 Python
解决项目pycharm能运行,在终端却无法运行的问题
2019/01/19 Python
Python Datetime模块和Calendar模块用法实例分析
2019/04/15 Python
基于python全局设置id 自动化测试元素定位过程解析
2019/09/04 Python
pytorch 实现打印模型的参数值
2019/12/30 Python
Python创建空列表的字典2种方法详解
2020/02/13 Python
Python3 filecmp模块测试比较文件原理解析
2020/03/23 Python
结合CSS3的布局新特征谈谈常见布局方法
2016/01/22 HTML / CSS
5分钟弄清楚html5的drag and drop(小结)
2019/04/10 HTML / CSS
递归实现回文判断(如:abcdedbca就是回文,判断一个面试者对递归理解的简单程序)
2013/04/28 面试题
小学生演讲稿大全
2014/04/25 职场文书
人事任命书怎么写
2014/06/05 职场文书
团代会开幕词
2015/01/28 职场文书
2015年重阳节慰问信
2015/03/23 职场文书
MySQL去除密码登录告警的方法
2022/04/20 MySQL
Win10本地连接不见了怎么恢复? win10系统电脑本地连接不见了解决方法
2023/01/09 数码科技