您可以拆分列表,然后使用自定义
key函数进行排序。但是,您需要先解析日期才能正确对它们进行排序。
import datetimenew_l = sorted((x.split('~') for x in l), key=lambda x: (x[0], datetime.datetime.strptime(x[3], '%m/%d/%Y %H:%M'), x[2], x[1]))键函数返回一个元组。元组在字典上进行比较;比较第一项;如果它们相同,则比较第二个项目,依此类推。[1]
或者,您可以分阶段进行排序。这将允许您指定要分别按升序或降序排序的列。
from operator import itemgetternl = [x.split('~') for x in l]nl.sort(key=itemgetter(1))nl.sort(key=itemgetter(2))nl.sort(key=lambda x: datetime.datetime.strptime(x[3], '%m/%d/%Y %H:%M'), reverse=True) # Newest firstnl.sort(key=itemgetter(0))请记住,这两种方式都会使新列表像这样拆分:
new_list = [["Chris", "Check-out", "Zoom G", "11/08/2014 14:21"], ...]
如果要将它们改回原始形式,可以执行以下操作
join:
new_list_joined = ['~'.join(x) for x in new_list]



