【问题标题】:How do i sort a dictionary by value that has tuples as values如何按具有元组作为值的值对字典进行排序
【发布时间】:2015-05-14 16:59:17
【问题描述】:

我有一个字典,其中有字符串作为键,元组有两个元素作为值:

d = {"Alex": (18, 22), "Maria": (5, 11), "John": (18, 19), "Jim": (5, 8)}

我正在尝试按值对这本字典进行排序,但我希望降序排列为 value[0],升序排列为 value[1]

当我使用时:

sorted_dict = sorted(d.items(), key=operator.itemgetter(1), reverse=True)

输出是:

{"Alex": (18, 22), "John": (18, 19), "Maria": (5, 11), "Jim": (5, 8)}

当我需要它时:

{"John": (18, 19), "Alex": (18, 22), "Jim": (5, 8), "Maria": (5, 11)}

你知道如何实现吗?

【问题讨论】:

  • 不要给自己的字典命名dict,它会影响内置的。

标签: python python-2.7 sorting dictionary tuples


【解决方案1】:
In [1]: sorted(a.items(), key=lambda e: (-e[1][0], +e[1][1]))
Out[1]: [('John', (18, 19)), ('Alex', (18, 22)), ('Jim', (5, 8)), ('Maria', (5, 11))]

【讨论】:

  • 谢谢,完全按照我的建议做:)
猜你喜欢
  • 1970-01-01
  • 2017-08-21
  • 1970-01-01
  • 2020-05-06
  • 2011-09-15
  • 2016-03-24
  • 2010-10-11
相关资源
最近更新 更多