【问题标题】:How to sort python dictionary/list?如何对python字典/列表进行排序?
【发布时间】:2015-05-29 22:36:00
【问题描述】:

您将如何打印此列表

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

按字母顺序排列,每个人的数字最高,每个人的最高数字降序排列,每个人的平均得分降序排列? 我已经研究过使用 class1.values() 但这只会打印我从这里到哪里对它们进行排序的所有值?

【问题讨论】:

  • 如果您向我们展示您自己尝试过的示例,您会得到更多更好的答案
  • 我不确定是查看列表还是字典排序
  • 你正在使用字典和列表,所以both
  • 字典本质上是未排序的。如果不先将 dict 转换为键/值对列表,然后对 那个 列表进行排序,则无法对它进行排序。
  • 如何翻译?

标签: python list python-2.7 sorting dictionary


【解决方案1】:

假设我理解你的问题,这些应该可以做到:

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

【讨论】:

  • 很高兴听到这个消息。您还可以投票/接受以表明这是一个有用的答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-02-08
  • 2016-06-11
  • 2011-12-22
  • 1970-01-01
  • 2014-02-14
  • 1970-01-01
相关资源
最近更新 更多