【发布时间】:2016-09-04 09:52:14
【问题描述】:
我有一个元组列表,我正在尝试按日期排序,然后按最大数排序。所以基本上当你有两个相同的日期时,它会将具有最大数字的元组放在第一位。请参见下面的示例。
我的元组列表
dataLst = [["Mike", 50, "08/10/2016"], ["Bob", 100, "08/10/2016"], ["Dave", 500, "08/01/2016"], ["Paul", -50, "08/20/2016"], ["Sam", 250, "08/30/2016"]]
然后我按元组中的日期对列表进行排序。
sDataLst = sorted(dataLst, key=operator.itemgetter(2))
然后我按数字倒序对排序后的列表进行排序。
sorted(sDataLst,key=operator.itemgetter(1), reverse=True)
当我打印排序列表时,我得到以下信息。
print sDataLst
[['Dave', 500, '08/01/2016'], ['Mike', 50, '08/10/2016'], ['Bob', 100, '08/10/2016'], ['Paul', -50, '08/20/2016'], ['Sam', 250, '08/30/2016']]
如果您查看列表中具有相同日期的第二项和第三项,则应将它们颠倒,因为第三项中的数字大于第二项中的数字。我正在寻找的结果如下。
[['Dave', 500, '08/01/2016'], ['Bob', 100, '08/10/2016'], ['Mike', 50, '08/10/2016'], ['Paul', -50, '08/20/2016'], ['Sam', 250, '08/30/2016']]
对此的任何帮助将不胜感激。
谢谢
【问题讨论】:
-
您知道以 mm/dd/yyyy 格式对日期进行排序不会像 日期顺序 这样,对吧?
-
是的,我知道这一点,但因为我选择 mm/dd/yyyy,所以当作为字符串值传递时,它会正确排序。但谢谢你的注意。我会牢记这一点。
-
好吧,不......他们不会正确排序......
12/31/2015不会在01/01/2016之前出现吗?