python函数参数列表_将多个列表作为函数的参数解包

如果我有这样的功能:def f(a,b,c,d):

print a,b,c,d

那么为什么这样做:f(1,2,3,4)

f(*[1,2,3,4])

但不是这个:f(*[1,2] , *[3,4])

f(*[1,2] , *[3,4])

^

SyntaxError: invalid syntax

是吗?

编辑:

有关信息,最初的问题是替换函数包装器中的一个参数。我想替换输入的*参数的给定成员,并尝试如下操作:def vectorize_pos(f,n=0):

'''

Decorator, vectorize the processing of the nth argument

:param f: function that dont accept a list as nth argument

'''

def vectorizedFunction(*args,**kwargs):

if isinstance(args[n],list):

return map(lambda x : f( *(args[:n]) , x , *(args[n+1,:]), **kwargs),args[n])

else:

return f(*args,**kwargs)

return vectorizedFunction

这就是问题的由来。我知道还有其他方法可以做同样的事情,但我只想知道为什么解包一个序列有效,而不是更多。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值