如何将嵌套列表中的每个子列表作为单独的参数传递

时间:2017-04-22 21:16:30

标签: python list

我有一个嵌套列表:

lists = [['q','w','e'],['r','t','y'],['u','i','o']]

一个功能:

def func(*iterables)

如何使用我的列表调用func?我试过了:

func(item for item in lists)

但它没有用。

3 个答案:

答案 0 :(得分:1)

如果我理解正确的话......

func(*lists)

这基本上解压缩列表,因此内容可以用作函数的参数。

*运算符在其他一些语言中称为“splat”。 :)

答案 1 :(得分:0)

item for item in lists是一个生成器表达式,它仍然只是“一个”参数。您实际上需要解压缩lists

除了使用解包(*):

func(*lists)

您还可以使用装饰器“利用”这种方法(如果您经常需要):

def packed(func):
    def inner(args):
        return func(*args)
    return inner

packed(func)(lists)

我最近在我的iteration_utilities.packed包中添加了这样的“装饰器”:

from iteration_utilities import packed

packed(func)(lists)

答案 2 :(得分:-1)

列表理解必须在方括号中,因此语法不正确。

func(*lists)

*列表解压缩列表内容,因此项目是函数中的单独参数。