把列表传递给函数后, 函数就能直接访问列表中的内容咯。
假设有一组专家,我们想邀请他们参加研讨会。
def send_invitation(experts):
'''发送邀请函'''
for expert in experts:
print(expert + ',您好,现邀请您参加 XX 研讨会...')
experts = ['小明', '小红']
send_invitation(experts)运行结果:
小明,您好,现邀请您参加 XX 研讨会…黄莉莉,您好,现邀请您参加 XX 研讨会…
列表参数传递给函数后, 函数就可以对其进行修改。
注意:在函数中对列表所进行的任何修改都是永久性的。
立即学习“Python免费学习笔记(深入)”;
def send_invitation(experts, informed):
'''发送邀请函,并移动列表数据到【已通知】列表'''
while experts:
expert = experts.pop()
print(expert + ',您好,现邀请您参加 XX 研讨会...')
informed.append(expert)
experts = ['小明', '小红'] # 专家列表
informed = [] # 已通知人员列表
print('执行前:experts=' + str(experts) + ',informed=' + str(informed))
send_invitation(experts, informed)
print('执行后:experts=' + str(experts) + ',informed=' + str(informed))运行结果:
执行前:experts=['小明', '小红'],informed=[]
小红,您好,现邀请您参加 XX 研讨会...
小明,您好,现邀请您参加 XX 研讨会...
执行后:experts=[],informed=['小红', '小明']
即使没有注释,那些具有描述性的函数名也能清晰地表达出函数所做的工作。
我们也可以在一个函数中调用另一个函数, 这样有助于将复杂的任务分解为一系列的步骤,让程序变得更具可读性。
有时候,我们并不想让函数修改传递进去的列表,
这本书给出了一份关于python这门优美语言的精要的参考。作者通过一个完整而清晰的入门指引将你带入python的乐园,随后在语法、类型和对象、运算符与表达式、控制流函数与函数编程、类及面向对象编程、模块和包、输入输出、执行环境等多方面给出了详尽的讲解。如果你想加入 python的世界,David M beazley的这本书可不要错过哦。 (封面是最新英文版的,中文版貌似只译到第二版)
1
这时我们可以向函数传递列表的副本:
experts = ['小明', '小红'] # 专家列表
informed = [] # 已通知人员列表
print('执行前:experts=' + str(experts) + ',informed=' + str(informed))
send_invitation(experts[:], informed)
print('执行后:experts=' + str(experts) + ',informed=' + str(informed))运行结果:
执行前:experts=['小明', '小红'],informed=[]
小红,您好,现邀请您参加 XX 研讨会...
小明,您好,现邀请您参加 XX 研讨会...
执行后:experts=['小明', '小红'],informed=['小红', '小明']
虽然向函数传递列表的副本可以保留原始列表的内容,
但除非有充分的理由需要这样做。
因为让函数使用传递进行的列表可以避免花时间
在内存中创建副本,从而提高性能,这在处理大数据列表时尤其需要注意。
以上就是如何在Python函数中传递列表?的详细内容,更多请关注php中文网其它相关文章!
python怎么学习?python怎么入门?python在哪学?python怎么学才快?不用担心,这里为大家提供了python速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号