Python中文
首页
教程
问答
标签
搜索
登录
注册
如何解决模块依赖的DAG?
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我正在使用networkx构建一个DAG,它表示我的几个模块之间的依赖关系。你知道吗</p> <p>考虑服装“模块”之间的依赖关系:</p> <pre><code>import networkx as nx dependencies = { 'underpants': [], 'socks': [], 'pants': ['underpants'], 'shirt': [], 'sweater': ['shirt'], 'coat': ['shirt', 'sweater'], 'shoes': ['socks', 'pants'] } modules = dependencies.keys() G = nx.DiGraph() for mod in modules: G.add_node(mod) for mod, deps in dependencies.items(): for dep in deps: G.add_edge(mod, dep) nx.draw_networkx(G) </code></pre> <p><a href="https://i.stack.imgur.com/Z3nns.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/Z3nns.png" alt="enter image description here"/></a></p> <p>这意味着如果我想穿上鞋子,我需要已经穿上袜子,还有裤子。延伸到内裤(裤子的附属品)。你知道吗</p> <p>我现在想要一个函数,它接受一个“module”,并以正确的顺序返回我之前必须运行的所有其他模块。你知道吗</p> <p>示例:</p> <pre><code>prerequisites("pants") == ["underpants"] prerequisites("underpants") == [] prerequisites("shoes") == ["underpants", "pants", "socks"] # or: ["socks", "underpants", "pants"] would also work. </code></pre> <p>我肯定这个问题存在,我只是不知道它的算法/函数名,对吗?你知道吗</p> <p>我认为通过<code>list(nx.topological_sort(G))</code>获得的拓扑序几乎就是我想要的。但在这种情况下,它会返回</p> <pre><code>['shirt', 'sweater', 'coat', 'socks', 'underpants', 'pants', 'shoes'] </code></pre> <p>所以如果我想穿袜子,这个结果会告诉我先穿衬衫、毛衣和外套(尽管它们是可选的,但没有依赖性)。你知道吗</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>我认为DFS方法可以完成这项任务。算法如下:</p> <pre><code>FindDependencies( module ) { ans = [] for d in dependencies[module] { ans = append(ans, FindDependencies(d)) } ans = append(ans, module) return ans } </code></pre>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
当用户用PYTHON设置一个或一个不带值的URL时,他们怎么能输入一个/a的代码呢?
4 回答
当用户登录到站点时,如何显示不同的导航栏
6 回答
当用户登录时,在Flask中向用户显示处理结果
2 回答
当用户的Flask会话结束时,我如何从Redis后端中移除所有Celery结果?
3 回答
当用户的Okta配置文件字段当前为blan时,更新该字段
1 回答
当用户的付款逾期2天时,从Django模型检索数据
5 回答
当用户的消息以问号结尾时,如何让机器人说些什么?
6 回答
当用户的系统上可能也安装了Python 2.7时,如何在用户的系统上运行Python 3脚本?
6 回答
当用户确定打印数量时,使用Matplotlib打印动画
7 回答
当用户离开时是否可以删除整个网页?
5 回答
当用户给出一个单词时如何打印?
4 回答
当用户继续更改TKin中的值(使用trace方法)时,使用Entry并更新输入的条目
9 回答
当用户编辑表单字段时,从Django时间字段中删除秒数
7 回答
当用户被更改时,消息不会来自web套接字
4 回答
当用户访问表单时,如何使表单为只读,而不具有更改权限
7 回答
当用户试图更改对象的值时,使用描述符类引发RuntimeError
4 回答
当用户调整GUI的大小时,是否有方法更改GUI内容的大小?
8 回答
当用户调整风的大小时,pythontkinter小部件的大小会不均匀
6 回答
当用户购买某个类别时,是否查找其他类别的销售?
5 回答
当用户转到上一页时,Django和芹菜插入操作
6 回答