微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何向networkx图添加额外的权重?

如何解决如何向networkx图添加额外的权重?

我正在做一个 Django 项目,在那里我放了 2 个点并得到它们的距离。 但是,有两种类型的重量,我需要获取电缆线的长度和轨道线的长度。 Graph 只能获得一个权重,如何添加额外的权重,例如 weight1、weight2?

def get_distance_length_kls(request,pk1,pk2):
    point1 = get_object_or_404(Point,pk=pk1)
    point2 = get_object_or_404(Point,pk=pk2)
    g = nx.Graph()
    data = []
    content = {'points': None}
    content1 = {"sum_line": 0,"sum_cable": 0}

    for form in Form61KLS.objects.all():
        g.add_edge(form.point1.point,form.point2.point,weight=form.total_length_line)
        #here should be another type of length weight=form.total_length_cable)

    for p in nx.all_simple_edge_paths(g,source=point1.point,target=point2.point):
        finish_total = copy.deepcopy(content)
        finish_total['points'] = p
        data.append(finish_total)
    path = []
    for p in nx.all_simple_paths(g,target=point2.point):
        path.append(p)
    if len(path) > 1:
        for pt in path:
            total = copy.deepcopy(content1)
            path_length = nx.path_weight(g,pt,weight='weight')
            total['sum_line'] = path_length
            data.append(total)
    return JsonResponse(data,safe=False) ```

My output should look like this:

**[
    {
        "points": [
            [
                "UZB/UT/Андиж","UZB/UT/Пахта"
            ],[
                "UZB/UT/Пахта","UZB/UT/Тшк"
            ],[
                "UZB/UT/Тшк","KAZ/ V-Net/Алматы"
            ]
        ]
    },{
        "sum_line": 190.103,"sum_cable": 0
    }
    
]** 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。