我有一个嵌套列表:
lists = [['q','w','e'],['r','t','y'],['u','i','o']]
一个功能:
def func(*iterables)
如何使用我的列表调用func
?我试过了:
func(item for item in lists)
但它没有用。
答案 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)
*列表解压缩列表内容,因此项目是函数中的单独参数。