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入门篇之文件
Oct 20 Python
Python通过递归遍历出集合中所有元素的方法
Feb 25 Python
python3实现抓取网页资源的 N 种方法
May 02 Python
Python二叉树的定义及常用遍历算法分析
Nov 24 Python
python+opencv实现阈值分割
Dec 26 Python
Python模拟百度自动输入搜索功能的实例
Feb 14 Python
Python 安装第三方库 pip install 安装慢安装不上的解决办法
Jun 18 Python
python爬虫 正则表达式解析
Sep 28 Python
使用Python的Turtle绘制哆啦A梦实例
Nov 21 Python
python3 assert 断言的使用详解 (区别于python2)
Nov 27 Python
pytorch中的inference使用实例
Feb 20 Python
Python趣味实例,实现一个简单的抽奖刮刮卡
Jul 18 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使用ftp实现文件上传与下载功能
2017/07/21 PHP
php日志函数error_log用法实例分析
2019/09/23 PHP
PHP如何使用cURL实现Get和Post请求
2020/07/11 PHP
滚动经典最新话题[prototype框架]下编写
2006/10/03 Javascript
JavaScript执行效率与性能提升方案
2012/12/21 Javascript
js日期相关函数总结分享
2013/10/15 Javascript
推荐阅读的js快速判断IE浏览器(兼容IE10与IE11)
2015/12/13 Javascript
javascript实现一个简单的弹出窗
2016/02/22 Javascript
使用jQuery实现WordPress中的Ctrl+Enter和@评论回复
2016/05/21 Javascript
在IE8上JS实现combobox支持拼音检索功能
2016/05/23 Javascript
DataTables+BootStrap组合使用Ajax来获取数据并且动态加载dom的方法(排序,过滤,分页等)
2016/11/09 Javascript
移动端js图片查看器
2016/11/17 Javascript
Angularjs实现下拉框联动的示例代码
2017/08/22 Javascript
Express + Session 实现登录验证功能
2017/09/08 Javascript
vue实现页面加载动画效果
2017/09/19 Javascript
js中位运算的运用实例分析
2018/12/11 Javascript
jQuery判断自定义属性data-val用法示例
2019/01/07 jQuery
使用element-ui table expand展开行实现手风琴效果
2019/03/15 Javascript
layui table 表格模板按钮的实例代码
2019/09/21 Javascript
[04:29]【TI9采访】OG.N0tail在胜者组决赛后接受采访
2019/08/25 DOTA
python高并发异步服务器核心库forkcore使用方法
2013/11/26 Python
举例讲解Python程序与系统shell交互的方式
2015/04/09 Python
python使用MySQLdb访问mysql数据库的方法
2015/08/03 Python
python文件操作相关知识点总结整理
2016/02/22 Python
Python基于scapy实现修改IP发送请求的方法示例
2017/07/08 Python
Tensorflow实现卷积神经网络的详细代码
2018/05/24 Python
selenium+python自动化测试之多窗口切换
2019/01/23 Python
Python爬虫之爬取淘女郎照片示例详解
2020/07/28 Python
最新远光软件笔试题面试题内容
2013/11/08 面试题
个人简历中的自我评价范例
2013/10/29 职场文书
财务专业大学生职业生涯规划范文
2013/12/30 职场文书
初中地理教学反思
2014/01/11 职场文书
勤俭节约演讲稿
2014/05/08 职场文书
三严三实学习心得体会
2014/10/13 职场文书
2015年车间安全管理工作总结
2015/05/13 职场文书
JavaScript使用canvas绘制坐标和线
2021/04/28 Javascript