<p>我正准备写与bitsplit相同的评论,他已经写了。你知道吗</p>
<p>所以我现在给你一个代码,我认为它和你的完全一样,基于这些注释和<code>get</code>字典的方法:</p>
<pre><code>from collections import defaultdict
def extract_Duplicate_BoxList(self, inputs):
result = defaultdict()
for i,A in enumerate(inputs):
print '<<< i is : %s' %i
name = A.getShortName() # Result: brick_geo
Lname = A.getLongName() # Result: |GrpA_null|concrete_geo
for n in (j for j,B in enumerate(inputs)
if j!=i and B.getShortName()==name):
print '<<< n is %s' %n
if A not in result.get(name,[])):
result[name].append(A)
return result
</code></pre>
<p>是的。你知道吗</p>
<p>其次,正如bitsplit所说,我觉得你的问题无法理解
你能提供更多关于投入要素的信息吗?<br/>
你对GrpA\u null和GrpB\u null以及名称和网格的解释不清楚。你知道吗</p>
<p>是的。你知道吗</p>
<p>编辑:<br/>
如果我的归约/简化是正确的,检查一下,我发现您实际上是比较<code>A</code>和<code>B</code>元素的<code>inputs</code>(使用<code>A!=B</code>),如果<code>A</code>和<code>B</code>具有相同的简称<code>shortname</code>,那么您将<code>A</code>记录在字典<code>result</code>的键<code>shortname</code>(仅一次);<br/>
我认为这个代码仍然可以简化为:</p>
<pre><code>def extract_Duplicate_BoxList(inputs):
result = defaultdict()
for i,A in enumerate(inputs):
print '<<< i is : %s' %i
result[B.getShortName()].append(A)
return result
</code></pre>