首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ValueError:需要超过一个值才能解压- python图形核心。

ValueError:需要超过一个值才能解压- python图形核心。
EN

Stack Overflow用户
提问于 2014-03-31 21:35:21
回答 1查看 561关注 0票数 0

我计划尝试使用这段代码来进行关键路径分析。在运行这段代码时,我得到了以下错误,但我不知道它意味着什么(因为我现在不知道代码是如何工作的)。

回溯(最近一次调用):G.add_edge('A','B',1)中的文件"/Users/PeterVanvoorden/Desktop/test.py",第22行,文件G.add_edge第161行,add_edge u,v= edge ValueError:需要超过一个值才能解包

代码语言:javascript
复制
# Copyright (c) 2007-2008 Pedro Matiello <pmatiello@gmail.com>
# License: MIT (see COPYING file)


import sys
sys.path.append('..')
import pygraph
from pygraph.classes.digraph import digraph
from pygraph.algorithms.critical import transitive_edges, critical_path

#demo of the critical path algorithm and the transitivity detection algorithm

G = digraph()

G.add_node('A')
G.add_node('B')
G.add_node('C')
G.add_node('D')
G.add_node('E')
G.add_node('F')

G.add_edge('A','B',1)
G.add_edge('A','C',2)
G.add_edge('B','C',10)
G.add_edge('B','D',2)
G.add_edge('B','E',8)
G.add_edge('C','D',7)
G.add_edge('C','E',3)
G.add_edge('E','D',1)
G.add_edge('D','F',3)
G.add_edge('E','F',1)
#add this edge to add a cycle
#G.add_edge('E','A',1)

print transitive_edges(G)
print critical_path(G)

我知道复制代码而不理解它是一种愚蠢的做法,但我想首先尝试示例代码,看看包是否工作,但显然它不起作用。现在我想知道是因为示例代码中的一个小错误,还是因为它是一个更根本的问题。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-31 21:54:09

我偷看了一下源代码,发现add_edge正试图将第一个位置参数解压缩为一个二元组。

如果您更改了这些行:

代码语言:javascript
复制
G.add_edge('A','B',1)
G.add_edge('A','C',2)
...

至:

代码语言:javascript
复制
G.add_edge(('A', 'B'), 1)  # note the extra parens
G.add_edge(('A', 'C'), 2)
...

应该管用的。但是,我以前没有使用过pygraph,所以这可能仍然不能产生预期的结果。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22772648

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档