26 valid = lambda (a, bid):bid >= reserve
27 valid_bids = filter(valid, bids)
29 rev_cmp_bids = lambda (a1, b1), (a2, b2): cmp(b2, b1)
报错:tuple parameter unpacking is not supported in Python 3:26
报错:tuple parameter unpacking is not supported in Python 3:29
怎么解决
有几个元组就传几个参数,然后在函数体里再把参数看作元组来处理,你这不是lambda传参数的方式。
比如:
fun = lambda x, y: list(zip(x, y))
a = 1, 3
b = 2, 4
res = fun(a, b)
print(res)
同学,你的代码可不可以复制全了,半截没法看呀。
不过,目前来看,应该问题是lambda函数的参数貌似不能这么写吧,应该是用 def test(a1,*arguments) 写法,取值的时候加上索引。举个例子吧。
def test(a1,*arguments):
print(a1) # 结果:a1 = 1
a2 = arguments[0] # 结果:a2 = 2
b1 = arguments[1] # 结果:b1 = 3
b2 = arguments[2] # 结果:b2 = 4
test(1,2,3,4)
# lambda写法就是:
resu = lambda a1,*argument:argument[1] > argument[2] # 不知道为啥我用不了cmp函数,先用简单表达式举例
a = resu(1,2,3,4) # 结果是 False
print(a)