我尝试使用itemgetter,但我的代码似乎有问题
from operator import itemgetter
def create_dict(words):
sorted(words, key = itemgetter category: category['food', 'animal', 'job'])
words = [('food', 'apple'), ('food', 'almond'), ('food', 'apricot'), ('food', 'beancurd'), ('food', 'bacon'),('food', 'bread'), ('food', 'beans'), ('food', 'broccoli'), ('food', 'cake'), ('food', 'chili'), ('animal', 'ape'), ('animal', 'ant'), ('animal', 'bat'), ('animal', 'bear'), ('animal', 'cat'),('animal', 'dog'), ('animal', 'flea'), ('animal', 'horse'), ('animal', 'lamb'), ('animal', 'leopard'),('job', 'baker'), ('job', 'farmer'), ('job', 'builder'), ('job', 'teacher'), ('job', 'pilot'), ('job', 'gardener'), ('job', 'gardener'), ('job', 'secretary'), ('job', 'salesman'), ('job', 'programmer'), ('job', 'manager')]
# *****FINAL RESULTS*****
create_dict(words) == {
'**food** ': {'apricot', 'cake', 'bacon', 'chili', 'almond', 'beancurd', 'apple', 'bread', 'broccoli', 'beans'},
'**animal**': {'dog', 'bat', 'horse', 'leopard', 'bear', 'ape', 'cat', 'flea', 'lamb', 'ant'},
'**job**': {'pilot', 'programmer', 'manager', 'gardener', 'farmer', 'teacher', 'builder', 'baker', 'secretary', 'salesman'}}
您想要的绝对不是排序,而是分组
您可以通过迭代
words
列表中的元组并将相关项作为另一个list
添加到字典中,以简单的方式完成此操作,而无需itemgetter
输入
输出
相关问题 更多 >
编程相关推荐