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

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语言学习:列表常用的方法
python 列表常用的方法 1.append( ):用于在列表末尾添加新的对象 list.appent(obj) #obj:添加到列表末尾的对象 #!/usr/bin/python aList = ...
- python中函数参数传递的几种方法
转自 http://www.douban.com/note/13413855/ Python中函数参数的传递是通过“赋值”来传递的.但这条规则只回答了函数参数传递的“战略问题”,并没有回答“战术问题 ...
- python中修改列表元素的方法
一.在for循环中直接更改列表中元素的值不会起作用: 如: l = list(range(10)[::2]) print (l) for n in l: n = 0 print (l) 运行结果: [ ...
- python - format函数 /class内置format方法
format函数 # format函数 # 用于字符串格式化 # 基本用法: # 方式一:(位置方式) x = "{0}{1}{2}".format(1,2,3) print('1 ...
- Python基础学习Day4 列表的使用方法、range 用法、in用法
一.列表 1.1列表:python基础数据类型之一:其他语言也有列表的概念,js 数组,可索引 ,可切片,可加步长 1.2列表的索引,切片,切片+ 步长 结果: 注意:列表里元素的数据类型,就是它本身 ...
- Python 利用函数、列表来实现计算天数
这几天课程学习了列表的操作,结合以前的函数知识,编写了一个能够判断天数的代码 源码如下 def is_year(year): return year % 4 == 0 and year % 100 ! ...
- python基础学习之列表的功能方法
列表:list 格式 li = [1,2,3,4,5,6] 列表内部随意嵌套其他格式:字符串.列表.数字.元组.字典. 列表内部有序,且内容可更改 a = [1,2,3,4] a[0] = 5 ...
- Python sorted函数对列表排序
http://jingyan.baidu.com/article/f3ad7d0ffe8e1409c2345b48.html http://www.cnblogs.com/100thMountain/ ...
- python中函数的定义及调用
python中函数的定义及使用方法 1.函数的概念:函数是将具有独立功能的代码块组织为一个整体,使其具有特殊功能的代码集; 2.函数的作用:使用函数可以加强代码的复用性,提高程序编写的效率; 3.函数 ...
随机推荐
- npm淘宝镜像配置
npm config set registry https://registry.npm.taobao.org
- Clover config.plist Boot部分
<key>Boot</key> <dict> <key>Arguments</key> < nv_disable= kext-dev- ...
- Java常用英语汇总(面试必备)
Java常用英语汇总(面试必备) abstract (关键字) 抽象 ['.bstr.kt] access vt.访问,存 ...
- 大O法时间复杂度计算
困惑的点——log,如何计算得出? ① 上限:用来表示该算法可能有的最高增长率. ② 大O表示法:如果某种算法的增长率上限(最差情况下)是f(n),那么说这种算法“在O(f(n))中”.n为输入规模. ...
- Java-MyBatis-MyBatis3-XML映射文件:XML映射文件
ylbtech-Java-MyBatis-MyBatis3-XML映射文件:XML映射文件 1. XML 映射文件 MyBatis 的真正强大在于它的映射语句,这是它的魔力所在.由于它的异常强大,映射 ...
- SpringBoot学习笔记(一):SpringBoot简介
SpringBoot为什么这么火? 为什么学习SpringBoot?总的来说就是简单. 使用SpringBoot免除了很多配置文件,越来越容易上手. 更轻量级的Web开发,免除了我们以前的server ...
- 2018CCPC吉林赛区 | 部分题解 (HDU6555 HDU6556 HDU6559 HDU6561)
// 杭电上的重现赛:http://acm.hdu.edu.cn/contests/contest_show.php?cid=867 // 杭电6555~6566可交题 A - The Fool 题目 ...
- java最大余数法(百分比算法Echarts)
最近工作中使用Echarts开发报表的时候遇到了这样的一个问题,需求是一个div中左边是一个环形图表,右边是一个表格,表格中展示图表中每个类别占用的百分比.存在的问题:1.当存在四舍五入的时候,Ech ...
- Python学习day18-常用模块之NumPy
figure:last-child { margin-bottom: 0.5rem; } #write ol, #write ul { position: relative; } img { max- ...
- java实现从实体到SQL语句的转换
使用过Hibernate,EF之类的ORM框架都知道一般的CRUD之类的简单操作,只要调用框架封装好了的方法,框架就自动生成相应的SQL语句了,参照实习公司给的代码,那个是C#版的,今天弄了一下jav ...