首页 > 解决方案 > Python 错误:“TypeError:'int' 对象不可调用

问题描述

distances = {   "u":0,
                "v":0,
                "w":0,
                "x":0,
                "y":0,
                "z":0 }

Np = ["u"]
nodes = ["u","v","w","x","y","z"]
max = 20;
for node in nodes:
        if (node+"-u") in dictionary:
                distances[node] = dictionary["u-"+node]
        else:
                distances[node] = max;


while Np != nodes:
        for node in nodes:
                if node not in Np:
                        if (distances[node] < max):
                                min = distances[node]
                                minnode = node;
                                max = min;
        Np.append(minnode);
        print(Np);
        for node in nodes:
                if node not in Np:
                        if (node+"-"+minnode) in dictionary:
                                distances[node] = min(distances[node], distances[minnode] + dictionary[node+"-"+minnode]);


请帮助我哪里出错了,我在最后一行代码出错:

distances[node] = min(distances[node], distances[minnode] + dictionary[node+"-"+minnode]);

它是说我正在做'int'的typeError,但我追溯代码开始,我看不出有什么问题。我正在使用字典对象和列表对象,也许这就是原因?请查看代码并修改

标签: pythonlistdictionarytypeerror

解决方案


min = distances[node]
minnode = node;
max = min;

从那里我们知道这min是一个数字或其他东西的变量,但是您在最后一行代码中将它用作函数。

distances[node] = min(distances[node], distances[minnode] + dictionary[node+"-"+minnode]);

尝试为您的变量使用另一个名称。


推荐阅读