Python中如何向函数传递列表

作者:摸鱼芝士 时间:2022-09-23 19:10:23 

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

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

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

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

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

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

在内存中创建副本,从而提高性能,这在处理大数据列表时尤其需要注意。

来源:https://blog.csdn.net/m0_74872863/article/details/129817291

标签:Python,函数,传递,列表
0
投稿

猜你喜欢

  • asp如何对数组显示和排序?

    2009-11-20 18:30:00
  • asp.net实现存储和读取数据库图片

    2024-01-19 06:56:32
  • Numpy中Meshgrid函数基本用法及2种应用场景

    2023-05-11 20:13:21
  • ASP如何使用CDONTS来发送电子邮件?

    2010-06-05 12:35:00
  • Python画图时如何调用本地字体

    2023-08-02 08:51:31
  • Golang中异常处理机制详解

    2024-02-17 17:05:50
  • go micro集成链路跟踪的方法和中间件原理解析

    2024-04-26 17:29:59
  • Python PaddleGAN实现调整照片人物年龄

    2023-09-28 05:48:14
  • OpenCV图像卷积之cv.filter2D()函数详解

    2021-11-16 07:51:34
  • 使用Python实现图像标记点的坐标输出功能

    2022-10-31 16:15:06
  • Python编程使用matplotlib挑钻石seaborn画图入门教程

    2021-04-12 18:28:17
  • Mysql中Insert into xxx on duplicate key update问题

    2024-01-23 22:32:36
  • 对Python 字典元素进行删除的方法

    2021-07-03 00:27:50
  • ASP XML制作菜单管理程序

    2011-04-04 11:15:00
  • 对Python 两大环境管理神器 pyenv 和 virtualenv详解

    2022-05-02 11:27:40
  • Python绘制三角函数图(sin\\cos\\tan)并标注特定范围的例子

    2021-06-17 17:53:29
  • ASP使用xmlhttp定时触发事件

    2008-08-19 18:09:00
  • python使用sklearn实现决策树的方法示例

    2023-03-25 07:44:28
  • python使用递归解决全排列数字示例

    2022-02-22 04:14:49
  • jupyter notebook运行命令显示[*](解决办法)

    2022-02-19 01:23:10
  • asp之家 网络编程 m.aspxhome.com