擅长:python、mysql、java
<p><code>defaultdict</code>与<code>itertools.count().next</code>方法相结合是将标识符分配给唯一项的好方法。下面是一个如何在您的案例中应用的示例:</p>
<pre><code>from itertools import count
from collections import defaultdict
def create_lookup_list(data, domains):
domain_keys = defaultdict(lambda:defaultdict(count().next))
out = []
for row in data:
out.append(tuple(domain_keys[dom][val] for val, dom in zip(row, domains)))
lookup_table = dict((k, sorted(d, key=d.get)) for k, d in domain_keys.items())
return out, lookup_table
</code></pre>
<p>编辑:注意在python3中,<code>count().next</code>变成了<code>count().__next__</code>或{<cd5>}。在</p>