将一个值列表而不是多个参数传递给函数?

5 python arguments function list

让我们说有一个函数func()需要两个参数,a并且b.在Python中是否存在某种技术来传递单个列表mylist,该列表具有两个值而不是函数?

def myfunc(a, b):
    return a+b

myfunc([1, 2])
Run Code Online (Sandbox Code Playgroud)

如果一个人完全确定他总是调用相同的函数并且知道它需要多少个参数,那么可以做这样的事情:

mylist = [1, 2]
a, b = mylist

myfunc(a, b)
Run Code Online (Sandbox Code Playgroud)

但是如果你有列表需要提供给某些函数,并且每个函数都有不同的参数呢?可以为每个函数编写单独的代码行,将列表解压缩为变量并将它们传递给相应的函数,但是如果Python内置了一些内容来传递单个列表而不是单个参数值(事先确定list具有相应数量的值),那样看起来会好很多,最重要的是需要更少的代码行.

sth*_*sth 8

您可以使用*解压到列表参数:

myfunc(*mylist)
Run Code Online (Sandbox Code Playgroud)

  • 我知道Python会有这样的东西! (3认同)
  • @ user975135这也可以用dicts来完成,这对于关键字参数或调用具有许多参数的函数很有用:`mydict = {'a':1,'b':2}``myfunc(**mydict)` (3认同)