当前位置: 首页 > article >正文

Python 中 如何向函数传递列表?

嗨害大家好,我是芝士❤

今天也是来给大家整点干货的一天~


请添加图片描述

把列表传递给函数后, 函数就能直接访问列表中的内容咯。

假设有一组专家,我们想邀请他们参加研讨会。

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=['小红', '小明']

虽然向函数传递列表的副本可以保留原始列表的内容,

但除非有充分的理由需要这样做。

因为让函数使用传递进行的列表可以避免花时间

在内存中创建副本,

从而提高性能,

这在处理大数据列表时尤其需要注意。

请添加图片描述


👇问题解答 · 源码获取 · 技术交流 · 抱团学习请联系👇


http://www.kler.cn/a/4231.html

相关文章:

  • 03JavaWeb——Ajax-Vue-Element(项目实战)
  • K8S集群常用命令
  • 人工智能-机器学习之多分类分析(项目实战二-鸢尾花的多分类分析)
  • libcurl编译配置和使用
  • MySQL-索引
  • 【物联网】ARM核介绍
  • 【第十一届“泰迪杯”数据挖掘挑战赛】B题产品订单的数据分析与需求预测“解题思路“”以及“代码分享”
  • 以太网 ethtool命令详解
  • 深入理解计算机系统(第三版)【阅读笔记】
  • Tomcat 内部运行原理(一)
  • 用户体验设计中的颜色
  • Android App保护用户隐私————禁止应用截屏或录屏
  • Java阶段一Day09
  • vue有两种生成二维码的方式,qrcode、vue-qr(有icon);
  • 小皮 Windows web 面板 漏洞详解
  • 科大奥瑞物理实验——傅里叶光学
  • 数字化转型导师坚鹏:银行如何建设行业领先的人才培训管理体系
  • 【密码学复习】第五讲 PRG和流密码(一)
  • 运营商二要素、三要素 API:为用户的个人信息安全保驾护航
  • Qt关于路径的处理
  • 请在危险边缘试探、C++primer循环学习
  • linux内存的反向映射
  • 基于gtid的备份_恢复_注意事项_mysqldump_skip-gtids_include-gtids_exclude-gtids
  • ThreadLocal详解
  • 人工智能交互革命:探索ChatGPT的无限可能 第4章 ChatGPT-智能客服
  • Git(一)