说说在 Python 中如何向函数传递列表
2019-03-17 11:39
225 查看
版权声明:如果喜欢,就点个赞呗 O(∩_∩)O~ https://blog.csdn.net/deniro_li/article/details/88616356
把列表传递给函数后, 函数就能直接访问列表中的内容咯。
假设有一组专家,我们想邀请他们参加研讨会。
def send_invitation(experts): '''发送邀请函''' for expert in experts: print(expert + ',您好,现邀请您参加 XX 研讨会...') experts = ['袁孝楠', '黄莉莉'] send_invitation(experts)
运行结果:
袁孝楠,您好,现邀请您参加 XX 研讨会…
黄莉莉,您好,现邀请您参加 XX 研讨会…
1 修改列表
列表参数传递给函数后, 函数就可以对其进行修改。 注意: 在函数中对列表所进行的任何修改都是永久性的。
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=[‘黄莉莉’, ‘袁孝楠’]
- 即使没有注释,那些具有描述性的函数名也能清晰地表达出函数所做的工作。
- 我们也可以在一个函数中调用另一个函数, 这样有助于将复杂的任务分解为一系列的步骤,让程序变得更具可读性。
2 只读列表
有时候,我们并不想让函数修改传递进去的列表,这时我们可以向函数传递列表的副本:
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 函数如何不修改原始列表
- Python学习_我该怎么使用函数及函数中传递列表
- python 9-4 如何实现属性可修改的函数装饰器,python3 nolocal或者在python2中列表方式
- Python中如何禁止函数修改列表
- 【Python】向函数传递列表
- 你好,C++(26)如何与函数内部进行数据交换?5.1.3 函数参数的传递
- 关于纯C中如何向函数传递结构体指针的记载
- Python语言基础之函数的参数传递,lambda 表达式
- 如何"引用"传递参数从一个函数中得到多个返回值
- python 函数参数传递
- 如何将二维数组作为函数的参数传递
- python 函数参数的传递(参数带星号的说明)
- 如何打印出python多维列表中的某一列
- Python中二维列表如何获取子区域元素的组成
- **Python的函数参数传递 和 global
- python中如何获取文件列表
- 【C++】函数如何传递二维数组?二维数组是怎么通过指针进行传递?
- python的函数参数传递