根据两个键进行排序,第一个按降序排列,第二个按升序排列

普拉迪·乔德

我有一个元组列表:

lst = [(1,2), (3,2), (1,3), (3,4)]

我想根据第一个键降序对该列表进行排序,但是对于此键的相同值,应该基于第二个键但以升序对列表进行排序

但是,如果我这样做:

srt_lst = sorted(lst, key=lambda val: (val[0], val[1]), reverse = True)

它给了我:

[(3, 4), (3, 2), (1, 3), (1, 2)]

但是我正在寻找的清单是

[(3, 2), (3, 4), (1, 2), (1, 3)]

编辑

抱歉,我已经提供了所有需要的信息!!!!

请考虑以下,作为我的清单:

[('1', '3:00 PM'), ('1', '3:00AM'), ('2', '1:00 AM'), ('2', '2:00 AM')]

srt_lst = sorted(lst, key=lambda val: (val[0], val[1]), reverse = True)

给出: [(2, '2:00 PM'), (2, '2:00 AM'), (2, '1:00 AM'), (1, '3:00 PM'), (1, '3:00 AM')]

要求是:

[(2, '2:00 AM'), (2, '2:00 PM'), (1, '3:00 AM'), (1, '3:00 PM')]

帕德拉克·坎宁安

否定第二个键:

lst = [(1,2), (3,2), (1,3), (3,4)]

print(sorted(lst,key=lambda x: (x[0],- x[1]),reverse=True))
[(3, 2), (3, 4), (1, 2), (1, 3)]

或先删除相反的内容:

print(sorted(lst,key=lambda x: -x[0])

[(3, 2), (3, 4), (1, 2), (1, 3)]

从最低到最高的排序将把较低的第二个值放在首位,而使用-x[0]将把较高的第一个元素放在首位。

根据您的编辑,您需要转换x[0]为int并将时间解析为datetime对象:

from datetime import datetime

lst = [('1', '3:00 PM'), ('1', '3:00 AM'), ('2', '1:00 AM'), ('2', '2:00 AM')]

print(sorted(lst,key=lambda x: (-int(x[0]), datetime.strptime(x[1], "%H:%M %p"))))
[('2', '1:00 AM'), ('2', '2:00 AM'), ('1', '3:00 PM'), ('1', '3:00 AM')] 

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在 Python 中按升序对第一个变量、按自定义顺序的第二个变量和降序的第三个变量对 Python 中的 DataFrame 进行排序

来自分类Dev

如果第一个键相等,是否有办法按第二个键排序?

来自分类Dev

根据是否按下组合键,启动第一个系统或第二个系统

来自分类Dev

尝试对两个字段进行排序,然后是第二个,然后是第一个

来自分类Dev

在C中按对的第一个元素然后按对的第二个元素对对的向量进行排序

来自分类Dev

合并两个画布。把第一个放在第二个

来自分类Dev

合并两个数组,第一个基于值,第二个基于键-php

来自分类Dev

Php,使用第一个键和第二个值连接两个数组

来自分类Dev

对两个数组进行排序,以便第二个数组排序基于第一个

来自分类Dev

Haskell,找到第二个元素最少的tupel,如果第二个元素具有两个相同值的tuple,则使用第一个元素进行排序

来自分类Dev

按第一个维度对第二维数组排序,然后对第二个数组排序

来自分类Dev

Python3:按相反的第一个元素排序元组列表->如果相同,则按字母顺序按第二个元素排序

来自分类Dev

比较2个文件,按第一个文件的顺序打印第二个文件的行

来自分类Dev

WordPress - 如何按字母顺序排列 jQuery AutoComplete 搜索建议结果,优先考虑第一个字符,然后是第二个等等?

来自分类Dev

按字母顺序对压缩列表进行排序,并根据另一个列表对第二个列表进行排序**双重排序**

来自分类Dev

如何将第二个表的两个条目作为两列,以便从第一个表中进行选择查询?

来自分类Dev

比较两个熊猫列,并返回与第二个元素匹配的第一个的索引

来自分类Dev

Mongo:获取两个集合的数据-第二个取决于第一个

来自分类Dev

链接两个 jQuery .load() 请求会导致第二个覆盖第一个

来自分类Dev

两个 onchange 事件,其中第二个事件获取第一个事件的值

来自分类Dev

两个 div 并排:第一个粘贴,第二个居中

来自分类Dev

jQuery根据第一个下拉列表显示/排序第二个下拉列表?

来自分类Dev

第一个Datepicker onchange第二个日期将自动按1年

来自分类Dev

Mysql 按第一个表日期分组并计算第二个表中的不同字段

来自分类Dev

根据第二个键对列表进行排序

来自分类Dev

如何对任何两个匹配的数字或第一个数字比第二个数字小的字符串进行grep?

来自分类Dev

Python按第一个元素的最大值,然后第二个元素的最小值排序

来自分类Dev

Python按第一个元素的最大值,然后第二个元素的最小值排序

来自分类Dev

为什么第二个参数没有根据第一个参数进行过滤?

Related 相关文章

  1. 1

    如何在 Python 中按升序对第一个变量、按自定义顺序的第二个变量和降序的第三个变量对 Python 中的 DataFrame 进行排序

  2. 2

    如果第一个键相等,是否有办法按第二个键排序?

  3. 3

    根据是否按下组合键,启动第一个系统或第二个系统

  4. 4

    尝试对两个字段进行排序,然后是第二个,然后是第一个

  5. 5

    在C中按对的第一个元素然后按对的第二个元素对对的向量进行排序

  6. 6

    合并两个画布。把第一个放在第二个

  7. 7

    合并两个数组,第一个基于值,第二个基于键-php

  8. 8

    Php,使用第一个键和第二个值连接两个数组

  9. 9

    对两个数组进行排序,以便第二个数组排序基于第一个

  10. 10

    Haskell,找到第二个元素最少的tupel,如果第二个元素具有两个相同值的tuple,则使用第一个元素进行排序

  11. 11

    按第一个维度对第二维数组排序,然后对第二个数组排序

  12. 12

    Python3:按相反的第一个元素排序元组列表->如果相同,则按字母顺序按第二个元素排序

  13. 13

    比较2个文件,按第一个文件的顺序打印第二个文件的行

  14. 14

    WordPress - 如何按字母顺序排列 jQuery AutoComplete 搜索建议结果,优先考虑第一个字符,然后是第二个等等?

  15. 15

    按字母顺序对压缩列表进行排序,并根据另一个列表对第二个列表进行排序**双重排序**

  16. 16

    如何将第二个表的两个条目作为两列,以便从第一个表中进行选择查询?

  17. 17

    比较两个熊猫列,并返回与第二个元素匹配的第一个的索引

  18. 18

    Mongo:获取两个集合的数据-第二个取决于第一个

  19. 19

    链接两个 jQuery .load() 请求会导致第二个覆盖第一个

  20. 20

    两个 onchange 事件,其中第二个事件获取第一个事件的值

  21. 21

    两个 div 并排:第一个粘贴,第二个居中

  22. 22

    jQuery根据第一个下拉列表显示/排序第二个下拉列表?

  23. 23

    第一个Datepicker onchange第二个日期将自动按1年

  24. 24

    Mysql 按第一个表日期分组并计算第二个表中的不同字段

  25. 25

    根据第二个键对列表进行排序

  26. 26

    如何对任何两个匹配的数字或第一个数字比第二个数字小的字符串进行grep?

  27. 27

    Python按第一个元素的最大值,然后第二个元素的最小值排序

  28. 28

    Python按第一个元素的最大值,然后第二个元素的最小值排序

  29. 29

    为什么第二个参数没有根据第一个参数进行过滤?

热门标签

归档