我试图理解Python*args和**kwargs操作.让我们考虑一个带有4个参数的函数.我们可以使用*x将list x作为参数传递给函数
def foo(a,b,c,d):
print a,b,c,d
x=[1,2,3,4]
foo(x)
#TypeError: foo() takes exactly 4 arguments (1 given)
foo(*x)
#1 2 3 4 # works fine
print "%d %d %d %d" %(*x)
#SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)
如果我弄错了,以防foo()*x解包值...那么为什么错误print "%d %d %d %d" %(*x)?
注意 - 我对如何在一行中打印列表感兴趣,但只是好奇为什么print "%d %d %d %d" %(*x)不起作用.
小智 6
*x将x参数的内容解包为参数,而不是元组; %应该通过一个元组.
print "%d %d %d %d" % tuple(x)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
153 次 |
| 最近记录: |