【发布时间】:2011-12-23 07:50:55
【问题描述】:
我有这段代码在 python 2.7 中运行良好。 “dist”是一个数字字典,“min_dist”只是一个数字。
for v in vertices:
if dist[v.node_id] < min_dist:
min_dist = dist[v.node_id]
cur_min = v
现在我试图在 python 3.2 下运行它,它给了我这个错误:
if dist[v.node_id] < min_dist:
TypeError: unorderable types: dict() < int()
我在 python 3.2 中的代码有什么问题?
【问题讨论】:
-
如果 dist[v.node_id] 是字典,您可以将
if dist[v.node_id] < min_dist:替换为if False:并且程序应该仍然可以工作。如果是这样,您当然可以删除整个块,因为它永远不会被执行。 -
啊,这部分代码确实被执行了,但是其他地方有一段代码用 { } 初始化(错误地)dist[v.node_id],因此出现了问题。代码的所有其他部分都使用数字正确初始化。
-
我有完全相同的错误以完全相同的方式出现,所以你并不孤单 ;-) 看到这个让我可以快速修复它!
标签: python python-3.x porting