我想在接受可变长度参数(*args)的函数中将列表的每个值作为单独的参数传递。
当我直接传递每个参数时它工作正常,但是当我将每个参数作为列表的单独值传递时,它不会给出预期的结果。
例如,
def foo(no,*values):
values=list(values)
for i in range(0,len(values)):
values[i]=values[i]*no
return(values)
print(foo(5,6,7,8,9,10))
这工作正常,并为我提供了我的预期输出:
[30, 35, 40, 45, 50]
但这不会:
def foo(no,*values):
values=list(values)
for i in range(0,len(values)):
values[i]=values[i]*no
return(values)
h=[6,7,8,9,10]
print(foo(5,[i for i in h]))
这会生成以下输出:实际结果:
[[6, 7, 8, 9, 10, 6, 7, 8, 9, 10, 6, 7, 8, 9, 10, 6, 7, 8, 9, 10, 6, 7, 8, 9, 10]]
预期结果:
[30, 35, 40, 45, 50]
您可以使用*
以下方法解压缩列表:
def myfunc(no, *values):
...
arr = [1,2,3,4]
myfunc(5, *arr) # >>> myfunc(5, 1, 2, 3, 4)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句