向函数传递列表

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

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

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不允许程序员选择采用传值还是传 引用.Python参数传递采用的肯定是"传对象引用 ...

python禁止函数修改列表的实现方法

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

Python中函数传递参数有四种形式

Python中函数传递参数有四种形式 fun1(a,b,c) fun2(a=1,b=2,c=3) fun3(*args) fun4(**kargs) 四种中最常见是前两种,基本上一般点的教程都会涉及, ...

python_函数传递列表

'''#创建一个空列表,包含一些要打印的设计unprinted_designs = ['iphone','robot','books']completed_modles = [] #模拟打印每个设计, ...

Python 利用函数、列表来实现计算天数

这几天课程学习了列表的操作,结合以前的函数知识,编写了一个能够判断天数的代码 源码如下 def is_year(year): return year % 4 == 0 and year % 100 ! ...

Python Django Ajax 传递列表数据

function getTableContent(node) { event.preventDefault(); var tr = node.parentNode.parentNode; var id ...

Python sorted函数对列表排序

http://jingyan.baidu.com/article/f3ad7d0ffe8e1409c2345b48.html http://www.cnblogs.com/100thMountain/ ...

python函数2(返回值、传递列表...)

python函数2(返回值.传递列表...) 1.返回值 1.1.返回简单的值 #返回简单值 def get_formatted_name(first_name,last_name): "& ...

python 函数传递参数的多种方法

python中函数根据是否有返回值可以分为四种:无参数无返回值,无参数有返回值,有参数无返回值,有参数有返回值. Python中函数传递参数的形式主要有以下五种,分别为位置传递,关键字传递,默认值传递 ...

随机推荐

Linux uniq常用命令

-u 只显示不重复行.-d 只显示有重复数据行,每种重复行只显示其中一行-c 打印每一重复行出现次数.-f n为数字,前n个域被忽略.一些系统不识别- f选项,这时替代使用- n.

32-bit Assembly on x86_64 Linux (Use Nasm and ld&gcc)

Assembly on x86_64 Linux Some instructions in Intel assembly set are invalid in x86_64 env. e.g. aaa ...

jdownload的使用

Oracle之自定义函数

数据库中函数包含四个部分:声明.返回值.函数体和异常处理. --没有参数的函数 create or replace function get_user return varchar2 is v_use ...

IEnumerable接口的实现

对象要实现可以迭代需IEnumerable接口并实现GetEnumerator方法.一下简单例子 public class SPEnumerable : IEnumerable { ...

N元数组的子数组之和的最大值

题目:有N个整数的元素的一维数组,求子数组中元素之和中最大的一组(思想:动态规划) 分析: 设该数组为array[N], 那么对于array[i]该不该在元素之和最大的那个子数组中呢?首先,不如假设a ...

jquery 分页控件(二)

上一章主要是关于分页控件的原理,代码也没有重构.在这一章会附上小插件的下载链接,插件主要就是重构逻辑部分,具体可以下载源文件看下,源代码也有注释.为了测试这个插件是能用的,我弄了个简单的asp.net ...

python之面向对象那点事

一.类与对象 1.什么是类?类,顾名思义,就是具体相同属性的同一类事物的统称及抽象.对象,指是就是具体的抽象类的实例 以上的说法是不是看起来有点云里来雾里去呢.没错,专业的解释总是让人难以理解,这就是 ...

C++ 虚函数表解析(比较清楚,还可打印虚函数地址)

C++ 虚函数表解析 陈皓 http://blog.csdn.net/haoel 前言 C++中的虚函数的作用主要是实现了多态的机制.关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父 ...

python向函数传递列表,【Python】向函数传递列表相关推荐

  1. 【244】Python 说出下面list1,list2,list3的输出值(新的默认列表仅仅只在函数被定义时创建一次)...

    ♣ 题目部分(原文见公众号:python宝) python宝: https://mp.weixin.qq.com/mp/profile_ext?action=home&__biz=MzU5Nj ...

  2. python中set函数_python中的set函数、列表的操作

    原博文 2019-10-31 11:12 − 一.set函数 set()函数创建一个无序不重复元素集,可进行关系测试,删除重复数据,还可以计算交集.差集.并集等. 例题: 1.set函数求交集(&am ...

  3. C语言函数怎么像python那样返回多个值?(三种方法:1、设置全局变量 2、传递指针 3、使用结构体返回不同类型的数据)

    引用文章:c语言函数可不可以返回多个值 文章目录 方法一:设置全局变量 例如:利用一个函数求出正方形的周长和面积. 方法二:使用数组名或指针作为函数的形参 实例2:编写函数求一维整形数组的最大值与最小 ...

  4. python函数调用时的实参和形参之间传递_python 函数(实参与形参、传递参数)...

    函数 什么是函数?函数是带名字的代码块,用于完成具体的工作.写出一个函数后,就可以一直调用. 定义函数,函数的基本组成: 1.1 向函数传递参数 向函数中传递任意参数,这样打印出的结果就可以根据自己的 ...

  5. python列表去重函数_对python中两种列表元素去重函数性能的比较方法

    测试函数: 第一种:list的set函数 第二种:{}.fromkeys().keys() 测试代码: #!/usr/bin/python #-*- coding:utf-8 -*- import t ...

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

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

  7. Python列表操作常用函数、方法大全

    目录 简介 列表基本方法 访问列表元素(即索引) index方法 enumerate()函数 在列表中添加元素 append方法 insert方法 修改列表元素 删除列表元素 del语句 pop()函 ...

  8. python输入两个列表a和b、利用内置函数zip()_2nd Python基础语法

    第二章 基础语法的补充拓展 2.1 关于变量的机制 2.1.1 变量的创建和修改 当Python创建一个变量时,我们假设是name,赋值为zm,变量的值(zm)就会存储在计算机的内存中,而该变量的变量 ...

  9. python中用来返回序列的最大函数_Python程序设计2——列表和元组

    数据结构:更好的说法是从数据角度来说,结构化数据,就是说数据并不是随便摆放的,而是有一定结构的,这种特别的结构会带来某些算法上的性能优势,比如排序.查找等. 在Python中,最基本的数据结构是序列( ...

  10. python 定义list长度_python中list列表的高级函数 python如何统计列表的长度

    在python的函数中,如何将列表list的一部分作为函比如定义个函数,想实现的功能就是将列表a的后半部分(['c','d'])传入后面paraTestList(a[2:])中,括号里面的a[2:]命 ...

最新文章

  1. 运算符重载:即为函数
  2. java标识符 width_width(宽度)
  3. SPOJ3273(Treap)
  4. python科学计算和可视化编程软件_python科学计算与可视化
  5. 安卓从业者应该关注:Android 6.0的运行时权限
  6. 小白兔想的飞鸽传书(173dmba)安卓版
  7. (16)python_random学习笔记
  8. [Jetty] jetty 内存调优
  9. Redis入门学习笔记--附Redis工具类
  10. HDU4699:Editor
  11. 系统架构设计方法论——IBM架构解决方案设计
  12. 细菌实验分组(C程序设计进阶第2周)
  13. 【两次过】【2017腾讯】字符移位
  14. java排序输出序号_Java对map进行排序并生成序号
  15. android获取键盘状态,Android获取屏幕方向及键盘状态的小例子
  16. Imperva常用的维护命令
  17. 百度、腾讯、阿里等互联网公司年终奖都发多少?找工作指南
  18. oracle 11g创建数据库教程
  19. nowcoder_Bookshelf Filling_二分
  20. 微信移动端数据库组件WCDB系列(一)-iOS基础篇

热门文章

  1. Rust基础-关于trait之一
  2. EXCEL录入日期,轻松一键点击法(日期控件)
  3. 什么是Vue.js?适合入门小白(笔记1)
  4. 快速上手Ubuntu之安装篇——安装win7,Ubuntu16.04双系统
  5. 华为Vs爱立信:非卫翰思无能 而是任正非太厉害
  6. 我们应该知道的java位运算
  7. java drawstring 中文_java中Graphics类drawString()方法问题
  8. 直接修改gba_GBA修改说明
  9. 步行者遭受重创 当家球星奥拉迪波或赛季报销
  10. 骑行运动耳机哪个好,最值得入手的五款骑行运动耳机推荐