回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>从元组列表<strong>项1</strong>中获取重复计数数据,该元组列表包含患者计数器<code>data</code>…<code>data[1]</code>。对于下面的示例,我不需要考虑<code>data[0]</code>或<code>data[2]</code>上的重复项</p>
<pre><code>import itertools
def getDuplicateinTuple(dataInput):
seen={}
return [seen.setdefault(t[0], t) for t in dataInput if t[0] not in seen]
data=[('2013 Jul 5 06:56:07:', 'PATIENT:COUNTER1'),
('2013 Jul 5 06:56:07:', 'PATIENT:COUNTER2'),
('2013 Jul 5 06:56:07:', 'PATIENT:COUNTER3'),
('2013 Jul 5 06:56:07:', 'PATIENT:COUNTER4'),
('2013 Jul 5 06:57:11:', 'PATIENT:COUNTER1'),
('2013 Jul 5 06:56:11:', 'PATIENT:COUNTER5')]
data1=[('2013 Jul 5 04:26:40:', 'PATIENT:COUNTER1', 'COUNTER INFO: : 500 '),
('2013 Jul 5 04:26:40:', 'PATIENT:COUNTER2', 'COUNTER INFO: : 500 '),
('2013 Jul 5 04:26:40:', 'PATIENT:COUNTER3', 'COUNTER INFO: : 100 '),
('2013 Jul 5 04:26:40:', 'PATIENT:COUNTER4', 'COUNTER INFO: : 100 ')]
s=getDuplicateinTuple(data)
print s
s1=getDuplicateinTuple(data1)
print s1
</code></pre>
<p>预期输出为:</p>
<pre><code> [('2013 Jul 5 06:56:07:', 'PATIENT:COUNTER1'), ('2013 Jul 5 06:57:11:', 'PATIENT:COUNTER1')]
</code></pre>
<p>实际输出为</p>
<pre><code>[('2013 Jul 5 06:56:07:', 'PATIENT:COUNTER1'), ('2013 Jul 5 06:57:11:', 'PATIENT:COUNTER1'), ('2013 Jul 5 06:56:11:', 'PATIENT:COUNTER5')]
</code></pre>
<p>在相同的条件下,如果我给出一个非重复的输出,如<code>data1</code></p>
<p>预期产量:</p>
<pre><code> []
</code></pre>
<p>但电流输出:</p>
<pre><code>[('2013 Jul 5 04:26:40:', 'PATIENT:COUNTER1', 'COUNTER INFO: : 500 ')]
</code></pre>
<p>仅仅通过比较列表就可以做到这一点。
实现这一目标的更好的建议方法是什么?你知道吗</p>
<p>我看到了一些关于这方面的好文章:
<a href="https://stackoverflow.com/questions/9835762/find-and-list-duplicates-in-python-list">Find and list duplicates in a list?</a></p>