擅长:python、mysql、java
<p>下面是一个使用<code>itertools.groupby</code>的解决方案:</p>
<pre><code>from itertools import groupby
def combine(tuples):
rlist = [tuples[0]]
for k, g in groupby(tuples[1:], key=lambda t: t[0]):
rlist.append(tuple((k, tuple(gg[1:][0][0] for gg in g))))
return tuple(rlist)
sample = ('id', ('name', ('name_float_fml',)), ('user', ('email',)), ('user', ('last_login',)))
print combine(sample)
# ('id', ('name', ('name_float_fml',)), ('user', ('email', 'last_login')))
</code></pre>
<p>对于比问题中给出的更复杂的示例,此过程的递归应用可能是可能的。在</p>