1
touchwithe 2021-04-01 22:06:12 +08:00 via iPhone
list.sort(lambda item: datetime.datetime.strptime(item[0], ‘%Y-%m-%D %H:%M’), reverse=True)
手机回复,没测试,应该是这样的。看一下 list.sort 的两个参数就知道了。 |
2
echowuhao 2021-04-01 22:10:24 +08:00 via Android
不转换直接用 str 比较应该也是对的吧
|
3
infun 2021-04-01 22:13:27 +08:00
```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) ``` |
4
Gorgine 2021-04-01 22:14:25 +08:00
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) |
5
infun 2021-04-01 22:15:42 +08:00
楼上这个更好
|
6
maloneleo88 OP @touchwithe
@infun @echowuhao @infun 谢谢啊 !!! @Gorgine 这么骚的操作是怎么做到的, 也没用 datatme 。 讲讲啊大神 lambda 不太懂,不就是匿名函数吗? 怎么就按时间排列了呢?? |
7
touchwithe 2021-04-01 22:31:52 +08:00 via iPhone
@maloneleo88 字符串排序是逐个比较字符,所以正好和日期排序的结果一样
|
8
Gorgine 2021-04-01 22:33:16 +08:00
对 时间比较没必要转成 datetime 或者时间戳 字符串也是可以比较的
sorted 有个参数叫 key, 这个 key 可以传个函数进去,函数的参数默认就是这个 list 的 item,就是每个元祖,所以在这个匿名函数里面取 x[0],就取到来元祖的第一项,也就是那个时间字符串,然后 sorted 会根据 x[0]来给这个 list 排序 |
9
maloneleo88 OP |
10
Gorgine 2021-04-01 22:37:59 +08:00
@maloneleo88 接咋了
|
11
maloneleo88 OP @Gorgine 好的 等有机会的
|
12
lululau 2021-04-01 22:47:03 +08:00
sorted_list = sorted(list, key=operator.itemgetter(0), reverse=True)
|
13
lululau 2021-04-01 22:49:48 +08:00
|