回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>输入数据:</p>
<pre><code>input_tuple = (
(1, 'name1', 'Noah'),
(1, 'name2', 'Liam'),
(2, 'name3', 'Mason'),
(3, 'name4', 'Mason'),
(4, 'name5', 'Noah'),
(4, 'name6', 'Liam'),
(5, 'name7', 'Elijah'),
(5, 'name8', 'Noah'),
(5, 'name9', 'Liam')
)
</code></pre>
<p>转换成dict(键,值):</p>
^{pr2}$
<p>只是为了了解数据模型,还进行了一些筛选:</p>
^{3}$
<p>现在我想消除重复,然后恢复到如下所示的元组:
重复匹配条件:
1) 消除重复,如果长度(值)>1
2) 值应该完全匹配,而不是部分匹配。在</p>
<p>注:
键2和3的值不重复,因为len(value)不是-gt 1
关键字4的值已丢失,因为它完全重复
由于我们正在进行精确匹配,因此在键5中值['Noah',Liam]将不去。在</p>
<pre><code> output_tuple =
(
(1, 'name1', 'Noah'),
(1, 'name2', 'Liam'),
(2, 'name3', 'Mason'),
(3, 'name4', 'Mason'),
(5, 'name7', 'Elijah'),
(5, 'name8', 'Noah'),
(5, 'name9', 'Liam')
)
</code></pre>
<p>我试过的代码:</p>
<pre><code>from functools import reduce
from collections import defaultdict
input_tuple_dictionary = defaultdict(list)
for (key, *value) in input_tuple:
input_tuple_dictionary[key].append(value[1])
input_tuple_dictionary
for index in range(len(input_tuple_dictionary)-1):
for key, value in input_tuple_dictionary.items():
if len(value) > 1:
if value == value[index+1]:
print(key)
</code></pre>