1

我在 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))

没有问题。

4

2 回答 2

3

在 python 3中, map返回惰性迭代器对象,就像在 python 2 中的imap,所以你需要评估你的迭代器,例如:

list(map(lambda i : self.buildGraph(i, n), range(n)))
于 2012-09-13T10:39:24.020 回答
0

我看不出您的一个map示例如何提供您所期望的,而另一个没有,但作为一般提示,在 3.x 中使用现有 2.x 代码时 - 使用2to3 工具确保地图/过滤器/范围等之间的行为变化......不要在后面咬你。

于 2012-09-13T11:58:38.650 回答