Pass a list to function with variable number of args in python
本问题已经有最佳答案,请猛点这里访问。
我必须编写一个简单的函数,它接受可变数量的参数并打印和,这很简单(忽略错误检查):
1 2 3 4 5 | def add(*params): sum = 0 for num in params: sum += num print(sum) |
我必须调用脚本并给它提供参数,然后在函数中使用这些参数。我得到了这样的论据:
1 2 | import sys sys.argv[1:] |
但这是一个数组,发送到
型
是的,只需使用定义函数时使用的相同
1 2 | my_list = [1,2,3] result = add(*my_list) |
另外,请注意,
1 | numbers = [float(x) for x in args[1:]] |
号
或
1 | numbers = map(float, args[1:]) # lazy in Python 3 |
在用
不带
1 | result = sum(map(float, args[1:])) |
。
型
您应该使用参数解包语法:
1 2 3 4 5 6 7 8 | def add(*params): sum = 0 for num in params: sum += num print(sum) add(*[1,2,3]) add(*sys.argv[1:]) |
下面是另一个涉及主题的堆栈溢出问题