Python map v2.7在v3.2中没有长时间工作

时间:2012-09-13 10:35:15

标签: python map lambda python-3.x

我在Python v2.7中的代码不再适用于Python v3.2

我到处搜寻但我没有找到这种情况。似乎函数self.buildGraph(i, n)实际上从未被调用

n = 33
map(lambda i : self.buildGraph(i, n), range(n))

但是功能:

map(lambda x : fu(a, x), range(10))

没有问题。

2 个答案:

答案 0 :(得分:3)

在python 3中map返回lazy iterator object,如python 2中的imap,所以你需要评估你的迭代器,例如:

list(map(lambda i : self.buildGraph(i, n), range(n)))

答案 1 :(得分:0)

我没有看到你的map示例中的一个如何给出你期望的内容,而另一个没有,但作为一般提示,当使用3.x中的现有2.x代码时 - 使用2to3 tool以确保地图/过滤器/范围等之间的行为更改...不会在后方咬你。