擅长:python、mysql、java
<p>当@kikohs正在努力理解我的问题并给出他的答案时,我确实在这方面取得了一些进展,所以我将此作为问题的替代解决方案。不过,我确实认为他的回答很高明!在</p>
<pre><code>def _trim_branches(self, g, start, end):
"""Find all the paths from start to finish, and nuke any nodes that
aren't in those paths.
"""
good_nodes = set()
for path in networkx.all_simple_paths(
g,
source=start,
target=end):
[good_nodes.add(n) for n in path]
for node in g.nodes:
if node not in good_nodes:
g.remove_node(node)
return g
</code></pre>
<p>使用<code>subgraph</code>来执行第二个循环显然更好,正如他使用<code>itertools.chain</code>的一行程序一样。今天这些地方的东西很棒!在</p>