使用集合理解.
>>> {orders[i]['food'] for i in orders} {'pizza', 'taco'}
如果值food
是列表或元组,则可以在集合理解中使用嵌套循环.
>>> orders = {'peter': {'food': ['pizza','fries'], 'drink': 'soda'}, 'paul': {'food': ['taco'], 'drink': 'soda'}} >>> {j for i in orders for j in orders[i]['food']} {'pizza', 'taco', 'fries'}
您甚至可以operator.itemgetter
像Padraic一样使用.
>>> from operator import itemgetter >>> set(map(itemgetter("food"), orders.values())) {'pizza', 'taco'}
同样,如果食物的值是一个列表,您可以使用chain
.
>>> from itertools import chain >>> set(chain(*map(itemgetter("food"), orders.values()))) {'pizza', 'taco', 'fries'}