擅长:python、mysql、java
<p>在像你这样的情况下,我喜欢使用defaultdict。我真的很讨厌列表索引带来的猜测。你知道吗</p>
<pre><code>from collections import defaultdict
allData = [['joe', '32', 'pepperoni,cheese'],
['marc', '24', 'cheese'],
['jill', '27', 'veggie supreme, cheese'],
['joe', '32', 'pepperoni,veggie supreme'],
['marc', '25', 'cheese,chicken supreme']]
d = defaultdict(dict)
for name, age, pizzas in allData:
d[name].setdefault('age', age)
d[name].setdefault('pizzas', set())
d[name]['pizzas'] |= set(pizzas.split(','))
</code></pre>
<p>注意使用<a href="https://docs.python.org/2/library/stdtypes.html#dict.setdefault" rel="nofollow">setdefault</a>来设置我们遇到的第一个年龄值。它还支持使用set union来获得唯一的pizza。你知道吗</p>