把列表传递给函数后, 函数就能直接访问列表中的内容咯。网络
假设有一组专家,咱们想邀请他们参加研讨会。app
def send_invitation(experts): '''发送邀请函''' for expert in experts: print(expert + ',您好,现邀请您参加 XX 研讨会...') experts = ['袁孝楠', '黄莉莉'] send_invitation(experts)
运行结果:框架
袁孝楠,您好,现邀请您参加 XX 研讨会... 黄莉莉,您好,现邀请您参加 XX 研讨会...
列表参数传递给函数后, 函数就能够对其进行修改。注意: 在函数中对列表所进行的任何修改都是永久性的。机器学习
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=['黄莉莉', '袁孝楠']
即便没有注释,那些具备描述性的函数名也能清晰地表达出函数所作的工做。
咱们也能够在一个函数中调用另外一个函数, 这样有助于将复杂的任务分解为一系列的步骤,让程序变得更具可读性。大数据
有时候,咱们并不想让函数修改传递进去的列表,这时咱们能够向函数传递列表的副本:code
experts = ['袁孝楠', '黄莉莉'] # 专家列表 informed = [] # 已通知人员列表 print('执行前:experts=' + str(experts) + ',informed=' + str(informed)) send_invitation(experts[:], informed) print('执行后:experts=' + str(experts) + ',informed=' + str(informed))
运行结果:orm
执行前:
experts=['袁孝楠', '黄莉莉'],informed=[] 黄莉莉,您好,现邀请您参加 XX 研讨会... 袁孝楠,您好,现邀请您参加 XX 研讨会...
执行后:
experts=['袁孝楠', '黄莉莉'],informed=['黄莉莉', '袁孝楠']
虽然向函数传递列表的副本能够保留原始列表的内容, 但除非有充分的理由须要这样作。
由于让函数使用传递进行的列表能够避免花时间在内存中建立副本,从而提升性能, 这在处理大数据列表时尤为须要注意。
文源网络,仅供学习之用,侵删。在学习Python的道路上确定会碰见困难,别慌,我这里有一套学习资料,包含40+本电子书,800+个教学视频,涉及Python基础、爬虫、框架、数据分析、机器学习等,不怕你学不会!
https://shimo.im/docs/JWCghr8... 《Python学习资料》关注公众号【Python圈子】,优质文章每日送达。