在循环中附加键时python字典键错误

为什么在尝试遍历键值对列表并计算键发生多少次时出现键错误?我收到的错误类似于KeyError:3,这意味着该键不存在。我不能这样添加吗? self.node_degree [source] + = 1

class PageRank:
    def __init__(self,edge_file):

        self.node_degree = {}
        self.max_node_id = 0
        self.edge_file = edge_file

    def read_edge_file(self,edge_file):
        with open(edge_file) as f:
            for line in f:
                if line[0] != '%':
                    val = line.split()
                    yield int(val[0]),int(val[1])

    def get_max_node_id(self):
        return self.max_node_id

    def calculate_node_degree(self):

        for source,target in self.read_edge_file(self.edge_file):   
            self.node_degree[source] += 1

ping950726 回答:在循环中附加键时python字典键错误

尝试

for source,target in self.read_edge_file(self.edge_file):   
    try:
        self.node_degree[source] += 1
    except: 
        self.node_degree[source] = 1

您尝试将1添加到None,因为如果dict中没有这样的密钥,您没有在dict中创建密钥,因此在except中创建新的dict密钥可以工作。

,

尝试

self.node_degree[source] = self.node_degree.get(source,0) + 1
本文链接:https://www.f2er.com/3155206.html

大家都在问