您是否可以使用列表或其他可迭代作为带有任意数量参数的函数的输入?

时间:2015-04-24 08:22:51

标签: python python-3.x

我创建了一个通过* args功能获取任意数量变量的函数。现在另一个函数需要使用不同长度的列表来调用这个原始函数,但我似乎无法找到解决方案。作为简化示例:

def print_all(*args):
    for x in args:
        print(x)

print_all([1,2,3,4,5])

运行此命令,控制台显示:

[1,2,3,4,5]

但我希望它显示:

1
2
3
4
5

有没有办法将像这样的迭代变成适合接受上述* args的函数的输入?

2 个答案:

答案 0 :(得分:3)

以下将解决这个问题:

print_all(*[1,2,3,4,5])

使用星号运算符,列表中的每个项目都作为函数的单独参数传递。

答案 1 :(得分:0)

删除函数定义参数部分中存在的*。这里*是不必要的。

def print_all(args):
    for x in args:
        print(x)