向函数传递列表

在实际使用中你会发现,向函数传递列表是比较实用的,这种列表可能包含名字、数字、可能更复杂的对象(字典)

假设向一个函数传递一堆水果,我们说出我们喜欢所有的水果

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】向函数传递列表相关推荐

  1. python向函数传递列表,【Python】向函数传递列表

    向函数传递列表 在实际使用中你会发现,向函数传递列表是比较实用的,这种列表可能包含名字.数字.可能更复杂的对象(字典) 假设向一个函数传递一堆水果,我们说出我们喜欢所有的水果 def Obj(frui ...

  2. python参数传递方法_深入理解python中函数传递参数是值传递还是引用传递

    python 的 深入理解python中函数传递参数是值传递还是引用传递 目前网络上大部分博客的结论都是这样的: Python不允许程序员选择采用传值还是传 引用.Python参数传递采用的肯定是&q ...

  3. python之函数传递,形式参数和实际参数

    python之函数传递,形式参数和实际参数. 1.函数的参数传递. 函数的参数传递有两种形式 第一种是值传递,经常见于int.str.float.bool型数据.指的是将实际参数的值复制给形式参数一份 ...

  4. python用函数对列表删除_关于python:如何使用range()函数从列表中删除项目时迭代列表?...

    本问题已经有最佳答案,请猛点这里访问. 这是我在学习Python编程时遇到的最常见的问题.问题是,当我尝试使用"range()"函数迭代列表时,检查列表中的给定项是否满足给定条件, ...

  5. python filter函数_Python列表的8个实用技巧

    原作者: Nik Piepenbreier编译&内容补充: 费弗里原文地址: https://towardsdatascience.com/advanced-python-list-techn ...

  6. python cmp函数比较列表_Python列表cmp()方法

    Python列表cmp()方法比较两个列表. 语法 以下是cmp()方法的语法 - cmp(list1, list2) 参数 list1 - 这是要比较的第一个列表. list2 - 这是第二个要比较 ...

  7. Python入门--函数传递过程中实参的变化

    def fun(arg1,arg2):print('arg1=',arg1)print('arg2=', arg2)arg1=100;arg2.append(10)print('arg1=', arg ...

  8. python remove函数_Python列表的remove方法的注意事项

    为何没有删除列表中的全部元素? 解释: 按照执行顺序,第一个空格被删除之后,后面的元素会前移(变成['空格','空格','12','23']),指针下一次会指向新列表的第二个元素(即初始状态的第三个空 ...

  9. python——函数(定义函数、传递实参、返回值、传递列表、传递任意数量的实参、将函数存储在模块中、函数编写指南)

    目录 定义函数 传递实参 返回值 传递列表 传递任意数量的实参 将函数存储在模块中 函数编写指南 定义函数 #------定义函数---------- def user():print('hello! ...

最新文章

  1. CM5.x配置spark错误解决
  2. 数据库面试题【十、【非关系型数据库】和【关系型数据库】的【区别】与【优势比较】】
  3. OpenCV Cut Image via ROI 根据兴趣区域剪裁图片
  4. SharePoint 2013 - System Features
  5. 【今日CV 视觉论文速览】21 Nov 2018
  6. NeurIPS 2019论文盘点:谷歌系最多,国内清华第一
  7. Win10电脑如何查看本机mac地址
  8. 2-10 TreeView 控件
  9. Tp nginx.conf 配置(Linux)
  10. 读书笔记:《金字塔原理》
  11. MCU升级文件HEX、BIN、S19格式概述
  12. 求导计算机在线,求导计算器
  13. 突破与改变:酒店品牌的中高端之战
  14. LINUX PPP拨号永久在线保障机制
  15. Delphi10.3.3 部署android 开发环境
  16. 三维绕任意轴旋转矩阵
  17. uniapp中canvas将矩形图片绘制成圆形图片以及保存canvas到手机
  18. 为什么程序员用笛卡尔心形曲线告白的人,都还是单身?
  19. USB class总结
  20. 如何学习 C++ 如何学习一门较复杂的编程语言 【转】

热门文章

  1. python3-Python3 数字(Number)
  2. python编程100例头条-今日头条python面试题之编程篇
  3. python能编写手机软件-怎么用Python编写一个手机聊天软件或程序
  4. python读取txt数据-Python读取txt数据文件,并作图
  5. python程序打包成exe可执行文件,亲测可行(pyinstaller教程)
  6. codeforces D. Palindrome Degree(hash)
  7. redis中的intset
  8. LeetCode Rotate Function(寻找规律)
  9. windows下使用QtXlsx
  10. 题目1022:游船出租