擅长:python、mysql、java
<p>您可以从<code>itertools</code>使用<code>groupby</code>:</p>
<pre><code>from itertools import groupby
Owners = ('Bob', 'Bob', 'Bob', 'Jeff', 'Jeff', 'Mary', 'Ana')
Pets = ('Snake', 'Bird', 'Cat', 'Dog', 'Cat', 'Bird', 'Cat')
print([tuple(v) for g, v in groupby(Pets, key=lambda v, c=iter(Owners): next(c))])
</code></pre>
<p>输出:</p>
<pre><code>[('Snake', 'Bird', 'Cat'), ('Dog', 'Cat'), ('Bird',), ('Cat',)]
</code></pre>
<p>如果你想给结果添加所有者</p>
<pre><code>print({g: tuple(v) for g, v in groupby(Pets, key=lambda v, c=iter(Owners): next(c))})
</code></pre>
<p>印刷品:</p>
<pre><code>{'Bob': ('Snake', 'Bird', 'Cat'), 'Jeff': ('Dog', 'Cat'), 'Mary': ('Bird',), 'Ana': ('Cat',)}
</code></pre>