擅长:python、mysql、java
<p><strong>编辑:</strong>使用集合而不是元组更好,因为边是唯一元素的无序集合,也就是集合。在</p>
<p>我认为根据边缘/节点dicts的最终目的,让边缘<code>dict</code>将节点存储为<code>set</code>,这可能是明智的:</p>
<pre><code>edge: (node1, node2)
</code></pre>
<p>所以你有一个已经形成的<code>dict</code>的<code>node:[edges]</code>。我会这样创建新的dict:</p>
^{pr2}$
<p>使用<code>defaultdict</code>,您可以维护与使用<code>dict</code>相同的功能,只有当您对不存在的项调用<code>__getitem__()</code>方法时,它才会将该项添加到<code>dict</code>。在</p>
<p>您还可以利用这个新的dict创建一个<code>(edge, node1, node2)</code>形式的元组列表,其中包含一行代码列表comp:</p>
<pre><code>[tuple(edge) + tuple(nodes) for edge, nodes in edgeDict.items()]
</code></pre>
<hr/>
<p>同时,还有一些第三方模块可以清理您必须处理的任何图形业务。<a href="http://networkx.github.io/documentation/networkx-1.9/tutorial/tutorial.html" rel="nofollow">NetworkX</a>是一个流行的模块。在</p>