【问题标题】:Conditional sorting in PythonPython中的条件排序
【发布时间】:2018-07-05 13:31:41
【问题描述】:

在 Python 中,我如何根据条件对包含两个项目的列表进行排序:如果第一项不相等,则进行正常排序(基于第一项的值),如果第一项相等,则根据 biggness 排序第二项(较大的值在前):

这样的字典键:

{(0, 3): (3, 8), (0, 11): (4, 4), (1, 4): (5, 32)}

然后应该这样排序:

[(0, 11), (0, 3), (1, 4)]

【问题讨论】:

标签: python python-2.7 sorting


【解决方案1】:

使用反转第二个元素排序的键函数:

d = {(0, 3): (3, 8), (0, 11): (4, 4), (1, 4): (5, 32)}
print(sorted(d.keys(), key=lambda tup: (tup[0], -tup[1])))  # note the minus
# [(0, 11), (0, 3), (1, 4)]

【讨论】:

  • sorted(d, ...一旦字典部分被删除,对我来说就像是重复的
  • 这里:stackoverflow.com/a/49752932/6451573,也就是说,答案解决了它,但问题确实不同。
猜你喜欢
  • 2018-09-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-02-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多