跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • Q:怎么给一个乱序元组列表按时间排序?
未分類
18 4 月 2021

Q:怎么给一个乱序元组列表按时间排序?

Q:怎么给一个乱序元组列表按时间排序?

資深大佬 : maloneleo88 7

list = [(‘2021-03-18 21:30’, ‘16863’, ‘4032’, ‘0’, ‘3’),(‘2021-03-18 19:15’, ‘42898’, ‘9917’, ‘2’, ‘2’),(‘2021-03-16 21:30’, ‘9918’, ‘7239’, ‘1’, ‘0’),(‘2021-03-16 19:15’, ‘9916’, ‘16988’, ‘1’, ‘0’),(‘2021-03-09 21:30’, ‘9924’, ‘9914’, ‘0’, ‘1’),(‘2021-03-18 21:30’, ‘16863’, ‘4032’, ‘0’, ‘3’)]

要转换日期时间成时间戳吗?还是有更简单的方法?主要列表里是元组,应该怎么写呢?
我想倒序,是按正序排完了再 reversed 吗?

大佬有話說 (13)

  • 資深大佬 : touchwithe

    list.sort(lambda item: datetime.datetime.strptime(item[0], ‘%Y-%m-%D %H:%M’), reverse=True)
    手机回复,没测试,应该是这样的。看一下 list.sort 的两个参数就知道了。

  • 資深大佬 : echowuhao

    不转换直接用 str 比较应该也是对的吧

  • 資深大佬 : infun

    “`python
    import time

    def take_first(elem):
    time_string = elem[0]
    return time_string

    input_list = [(‘2021-03-18 21:30’, ‘16863’, ‘4032’, ‘0’, ‘3’),(‘2021-03-18 19:15’, ‘42898’, ‘9917’, ‘2’, ‘2’),(‘2021-03-16 21:30’, ‘9918’, ‘7239’, ‘1’, ‘0’),(‘2021-03-16 19:15’, ‘9916’, ‘16988’, ‘1’, ‘0’),(‘2021-03-09 21:30’, ‘9924’, ‘9914’, ‘0’, ‘1’),(‘2021-03-18 21:30’, ‘16863’, ‘4032’, ‘0’, ‘3’)]

    input_list.sort(key=take_first, reverse=True)

    print(input_list)
    “`

  • 資深大佬 : Gorgine

    list = [(‘2021-03-18 21:30’, ‘16863’, ‘4032’, ‘0’, ‘3’),(‘2021-03-18 19:15’, ‘42898’, ‘9917’, ‘2’, ‘2’),(‘2021-03-16 21:30’, ‘9918’, ‘7239’, ‘1’, ‘0’),(‘2021-03-16 19:15’, ‘9916’, ‘16988’, ‘1’, ‘0’),(‘2021-03-09 21:30’, ‘9924’, ‘9914’, ‘0’, ‘1’),(‘2021-03-18 21:30’, ‘16863’, ‘4032’, ‘0’, ‘3’)]
    sorted_list = sorted(list, key=lambda x: x[0], reverse=True)
    print(sorted_list)

  • 資深大佬 : infun

    上这个更好

  • 主 資深大佬 : maloneleo88

    @touchwithe
    @infun
    @echowuhao
    @infun
    谢谢啊 !!!

    @Gorgine 这么骚的操作是怎么做到的, 也没用 datatme 。 讲讲啊大神 lambda 不太懂,不就是匿名函数吗? 怎么就按时间排列了呢??

  • 資深大佬 : touchwithe

    @maloneleo88 字符串排序是逐个比较字符,所以正好和日期排序的结果一样

  • 資深大佬 : Gorgine

    对 时间比较没必要转成 datetime 或者时间戳 字符串也是可以比较的

    sorted 有个参数叫 key, 这个 key 可以传个函数进去,函数的参数默认就是这个 list 的 item,就是每个元祖,所以在这个匿名函数里面取 x[0],就取到来元祖的第一项,也就是那个时间字符串,然后 sorted 会根据 x[0]来给这个 list 排序

  • 主 資深大佬 : maloneleo88

    @touchwithe
    @Gorgine

    666

    擦,不学了。 我这撅腚捅咕一个小时没捅咕出来。。

    老大们 接活吗?

  • 資深大佬 : Gorgine

    @maloneleo88 接咋了

  • 主 資深大佬 : maloneleo88

    @Gorgine 好的 等有机会的

  • 資深大佬 : lululau

    sorted_list = sorted(list, key=operator.itemgetter(0), reverse=True)

  • 資深大佬 : lululau

    https://gist.github.com/lululau/c740a2a3915358ec5ed0c8d613687f19

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具