UnboundLocalError: local variable ‘node2‘ referenced before assignment

该文章讨论了一个在读取图的邻接列表时出现的错误,原始代码在未初始化`node1`和`node2`的情况下直接使用,导致有时会出现问题。修正后的代码为`node1`和`node2`赋予了初始值0,确保在遍历边的过程中能正确计算节点数`num_nodes`。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

错误代码

def read_graph_adj(fpath= "dfg.txt"):    
        edges = parse_txt_file(fpath, line_parse_fn=lambda s: s.split('\t'))
        print("edge:", edges)
        # 获取节点数
        nodes = []
        for line in edges:
            node1 = line[0]
            node2 = line[1]
            print("node1:", node1)
            print("node2:", node2)
            nodes.append(node1)
            nodes.append(node2)
        
        num_nodes = int(max(node1,node2))
        
        print("num_nodes:", num_nodes)

没有定义就直接使用了,但是有时候就没有问题。

正确代码

node1、node2赋初始值。

def read_graph_adj(fpath= "dfg.txt"):    
        edges = parse_txt_file(fpath, line_parse_fn=lambda s: s.split('\t'))
        print("edge:", edges)
        # 获取节点数
        nodes = []
        node1 = 0
        node2 = 0
        for line in edges:
            node1 = line[0]
            node2 = line[1]
            print("node1:", node1)
            print("node2:", node2)
            nodes.append(node1)
            nodes.append(node2)
        
        num_nodes = int(max(node1,node2))
        
        print("num_nodes:", num_nodes)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值