【Python】向函数传递列表
向函数传递列表
在实际使用中你会发现,向函数传递列表是比较实用的,这种列表可能包含名字、数字、可能更复杂的对象(字典)
假设向一个函数传递一堆水果,我们说出我们喜欢所有的水果
def Obj(fruits):for fruit in fruits:msg = 'I like '+fruit+'!'print(msg)L = ['apple','orange'] Obj(L)
我们将Obj定义成接受一个水果种类列表,并将其存储在形参Obj中,这个函数遍历接受到的列表,然后打印'I like ..!'
在函数中修改列表
#首先定义一个列表,其中包含要打印的字母 letters = ['A','B','C','D'] already_letter = []#模拟阅读每个字母,直到字母读取完毕为止 #将每个已经阅读过的字母转移到列表already_letter中 while letters:current_letter = letters.pop()print("Printing letter:"+current_letter)already_letter.append(current_letter)#显示已经读取的所有字母 print("\nThe follwing letter has been read:") for letter in already_letter:print(letter)
我们首先需要创建一个列表,还创建一个名为already_letter的空列表,每个已经阅读过的字母都存储到这个列表中,只要列表中还有字母,while循环就模拟阅读过程:从该列表中删除一个已经读取的字母,然后将其存储到变量current_letter中,并显示一条消息,再将该字母存储到新列表中,等到循环结束后,再打印出所有的字母。
上述程序改编版
def read_letter(letters,already_letter):"""读取每个字母,直到读取完毕为止将读取完毕后的字母存储到新的列表中:param letters::param already_letter::return:"""while letters:current_letter = letters.pop()#模拟读取字母的过程print("Printing letter:" + current_letter)already_letter.append(current_letter) def show_already_letter(already_letter):"""显示已经阅读的所有字母:param already_letter::return:"""print("\nThe follwing letters has been read:")for letter in already_letter:print(letter)letters = ['A','B','C','D'] already_letter=[]read_letter(letters,already_letter) show_already_letter(already_letter)
我们定义了函数read_letter(),它包含2个形参:一个需要阅读字母的列表和一个存储已经阅读字母的列表。给定这两个列表,这个函数模拟阅读过程:将字母一个个阅读,然后打印,最后将其转存到存储已阅读的列表中,函数show_already_letter()主要是打印已经阅读字母列表,最后四条语句是定义一个列表与一个空列表,调用上面的两个函数。
总结
上面的函数中,在读取完毕之后,letters列表就编程空列表了,那么假如我们想在读取完列表后还保留该列表,该怎么办呢?
使用切片法[ : ]创建列表的副本
def read_letter(letters,already_letter):"""读取每个字母,直到读取完毕为止将读取完毕后的字母存储到新的列表中:param letters::param already_letter::return:"""while letters:current_letter = letters.pop()#模拟读取字母的过程print("Printing letter:" + current_letter)already_letter.append(current_letter) def show_already_letter(already_letter):"""显示已经阅读的所有字母:param already_letter::return:"""print("\nThe follwing letters has been read:")for letter in already_letter:print(letter)letters = ['A','B','C','D'] already_letter=[]read_letter(letters[:],already_letter) show_already_letter(already_letter)print(letters)
通过这段代码的打印结果可以看出,列表已经被复制了哦!
【Python】向函数传递列表相关推荐
- python向函数传递列表,【Python】向函数传递列表
向函数传递列表 在实际使用中你会发现,向函数传递列表是比较实用的,这种列表可能包含名字.数字.可能更复杂的对象(字典) 假设向一个函数传递一堆水果,我们说出我们喜欢所有的水果 def Obj(frui ...
- python参数传递方法_深入理解python中函数传递参数是值传递还是引用传递
python 的 深入理解python中函数传递参数是值传递还是引用传递 目前网络上大部分博客的结论都是这样的: Python不允许程序员选择采用传值还是传 引用.Python参数传递采用的肯定是&q ...
- python之函数传递,形式参数和实际参数
python之函数传递,形式参数和实际参数. 1.函数的参数传递. 函数的参数传递有两种形式 第一种是值传递,经常见于int.str.float.bool型数据.指的是将实际参数的值复制给形式参数一份 ...
- python用函数对列表删除_关于python:如何使用range()函数从列表中删除项目时迭代列表?...
本问题已经有最佳答案,请猛点这里访问. 这是我在学习Python编程时遇到的最常见的问题.问题是,当我尝试使用"range()"函数迭代列表时,检查列表中的给定项是否满足给定条件, ...
- python filter函数_Python列表的8个实用技巧
原作者: Nik Piepenbreier编译&内容补充: 费弗里原文地址: https://towardsdatascience.com/advanced-python-list-techn ...
- python cmp函数比较列表_Python列表cmp()方法
Python列表cmp()方法比较两个列表. 语法 以下是cmp()方法的语法 - cmp(list1, list2) 参数 list1 - 这是要比较的第一个列表. list2 - 这是第二个要比较 ...
- Python入门--函数传递过程中实参的变化
def fun(arg1,arg2):print('arg1=',arg1)print('arg2=', arg2)arg1=100;arg2.append(10)print('arg1=', arg ...
- python remove函数_Python列表的remove方法的注意事项
为何没有删除列表中的全部元素? 解释: 按照执行顺序,第一个空格被删除之后,后面的元素会前移(变成['空格','空格','12','23']),指针下一次会指向新列表的第二个元素(即初始状态的第三个空 ...
- python——函数(定义函数、传递实参、返回值、传递列表、传递任意数量的实参、将函数存储在模块中、函数编写指南)
目录 定义函数 传递实参 返回值 传递列表 传递任意数量的实参 将函数存储在模块中 函数编写指南 定义函数 #------定义函数---------- def user():print('hello! ...
最新文章
- CM5.x配置spark错误解决
- 数据库面试题【十、【非关系型数据库】和【关系型数据库】的【区别】与【优势比较】】
- OpenCV Cut Image via ROI 根据兴趣区域剪裁图片
- SharePoint 2013 - System Features
- 【今日CV 视觉论文速览】21 Nov 2018
- NeurIPS 2019论文盘点:谷歌系最多,国内清华第一
- Win10电脑如何查看本机mac地址
- 2-10 TreeView 控件
- Tp nginx.conf 配置(Linux)
- 读书笔记:《金字塔原理》
- MCU升级文件HEX、BIN、S19格式概述
- 求导计算机在线,求导计算器
- 突破与改变:酒店品牌的中高端之战
- LINUX PPP拨号永久在线保障机制
- Delphi10.3.3 部署android 开发环境
- 三维绕任意轴旋转矩阵
- uniapp中canvas将矩形图片绘制成圆形图片以及保存canvas到手机
- 为什么程序员用笛卡尔心形曲线告白的人,都还是单身?
- USB class总结
- 如何学习 C++ 如何学习一门较复杂的编程语言 【转】
热门文章
- python3-Python3 数字(Number)
- python编程100例头条-今日头条python面试题之编程篇
- python能编写手机软件-怎么用Python编写一个手机聊天软件或程序
- python读取txt数据-Python读取txt数据文件,并作图
- python程序打包成exe可执行文件,亲测可行(pyinstaller教程)
- codeforces D. Palindrome Degree(hash)
- redis中的intset
- LeetCode Rotate Function(寻找规律)
- windows下使用QtXlsx
- 题目1022:游船出租