【问题标题】:passing one list of values instead of mutiple arguments to a function?将一个值列表而不是多个参数传递给函数?
【发布时间】:2012-06-19 08:01:18
【问题描述】:

假设有一个函数func() 接受两个参数,ab。 Python 中是否有某种技术可以将具有两个值的单个列表 mylist 传递给函数?

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

myfunc([1, 2])

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

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

myfunc(a, b)

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

【问题讨论】:

    标签: python list function arguments


    【解决方案1】:

    您可以使用*unpack the list into arguments

    myfunc(*mylist)
    

    【讨论】:

    • 我知道 Python 会有这样的东西!
    • @user975135 这也可以用 dicts 来完成,这对于关键字参数或调用具有许多参数的函数很有用:mydict = {'a': 1, 'b': 2}myfunc(**mydict)
    【解决方案2】:
    def myfunc(a, b):
        return a+b
    
    mylist = [1, 2]
    myfunc(*mylist)
    

    这里mylist可以是listtuplestring等长度为2。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-03-29
      • 2016-04-02
      • 1970-01-01
      • 1970-01-01
      • 2012-08-02
      • 1970-01-01
      相关资源
      最近更新 更多