Python - 具有3个参数的函数时使用map

时间:2016-01-04 17:59:24

标签: python for-loop dictionary

我想转换以下内容以使用地图功能:

tmplist = [3434,34,342,123123,451414,124124,1234124]
b=1234
a=5234

 for i in tmplist:
          b, a = myfunc(b, a, i)

请注意,b和a都应在每次迭代中被覆盖。这个问题的最初需求是使代码更有效。我正在寻求一种实现,这将有助于我比上述for循环更快地迭代。

谢谢。

1 个答案:

答案 0 :(得分:3)

这是减少,而不是地图。适当的减少函数是reduce

b, a = reduce(lambda ba, x: myfunc(ba[0], ba[1], x), tmplist, (b, a))

请注意,这对您的效率问题没有帮助。如果你想提高代码的效率,你需要进行算法改进,或者你需要从内循环中消除Python级代码。