如何排序python词典/列表?

时间:2015-03-26 01:24:43

标签: python list python-2.7 sorting dictionary

您将如何打印此列表

cat1 = {"sam":[4,9,7], "jeff":[3,3,6], "ben":[9,8,6]}

按字母顺序排列,每个人的人数最多,每个人的最高人数按降序排列,每个人的平均分数是否按降序排列? 我已经研究过使用class1.values()但是这只打印了我从这里开始排序的所有值吗?

1 个答案:

答案 0 :(得分:0)

假设我理解你的问题,应该这样做:

for person in sorted(cat1):
    print(person, max(cat1.get(person)))

结果:

ben 9
jeff 6
sam 9

然后:

for person in sorted(cat1, key=lambda x: max(cat1.get(x)), reverse=True):
    print(person, max(cat1.get(person)))

结果:

ben 9
sam 9
jeff 6

然后:

for person in sorted(cat1, key=lambda x: sum(cat1.get(x))/len(cat1.get(x)), reverse=True):
    print(person, sum(cat1.get(person))/len(cat1.get(person)))

结果:

ben 7.666666666666667
sam 6.666666666666667
jeff 4.0