python2.7中的一个代码在python3.5中运行不了,要如何改
发布网友
发布时间:2022-04-18 02:51
我来回答
共1个回答
热心网友
时间:2022-04-18 04:21
zip(input_vec, self.weights)假设这里出来的数据结构是 [(1, 4), (2, 5), (3, 6)]
那么lambda (x, w): x * w 在2.7版本就直接接收 元祖(1, 4)这样子的数据类型当做一个参数,
(x,w)=依次=>(1, 4), (2, 5), (3, 6),
但是这个写法在3.5的时候 ,狗日的不认识map(lambda (x, w)。。。x[0] * x[1]
替代方式我没去研究 在3.5的时候 我是直接把 x=(1, 4)。。用的时候x[0] * x[1]
(rece(lambda a, b: a + b,
map(lambda x: x[0] * x[1],
zip(input_vec, weights))
, 0.0))
追问最后那个0.0在什么时候会用到?
追答rece()还可以接收第3个可选参数,作为计算的初始值。如果把初始值设为100,计算:
rece(f, [1, 3, 5, 7, 9], 100)