如何在Python中对字符串列表进行排序?

时间:2018-01-23 18:53:41

标签: python string list sorting

我有以下字符串列表列表:

a= [['2014'],['2016'],['2017'],['Apr-14'],['Apr-15'],['Apr-16'],['Aug-14'],['Aug-15'],
 ['Aug-16'],['Dec-14'],['Dec-15'],['Dec-16'],['Feb-14'],['Feb-15'],['Feb-16'],['Jan-15'],
 ['Jan-16'],['Jul-14'],['Jul-15'],['Jul-16'],['Jun-14'],['Jun-15'],['Jun-16'],['Mar-14'],
['Mar-15'],['Mar-16'],['May-14'],['May-15'],['May-16'],['Nov-14'],['Nov-15'],['Nov-16'],
['Oct-14'],['Oct-15'],['Oct-16'],['Q115'],['Q116'],['Q214'], ['Q215'],['Q216'],['Q314'],
['Q315'],['Q316'],['Q414'],['Q415'],['Q416'],['Sep-14'],['Sep-15'],['Sep-16'],['Sum 14'],
['Sum 15'],['Sum 16'],['Win 14'],['Win 15'],['Win 16']]

我是一个python初学者,所以我不知道如何按我想要的方式对它进行排序我对字符串操作一无所知。

我希望我的输出为:

   [['Apr-14'], ['May-14'], ['May-14'], ['Q214'], ['Jun-14'], ['Jul-14'], ['Aug-14'],
['Sep-14'], ['Q314'], ['Sum 14'], ['Oct-14'], ['Nov-14'], ['Dec-14'], ['Q414'],['2014'],
['Jan-15'], ['Feb-15'], ['Mar-15'], ['Q115'], ['Win 14']
    and so on...]

我该怎么做?这真的很难,因为例如我的Win 14从10月14日开始,但在3月15日结束,我必须把2014年放在2014年年底,依此类推。

我无法设法编码我甚至不知道我应该怎么写逻辑

1 个答案:

答案 0 :(得分:1)

对我来说,如何订购一年内的范围并不明显,特别是“总和”和“赢”。我建议分两个阶段进行分类。首先查看列表中每个字符串的最后2个字符,按年份排序。然后,创建一个包含所有可能范围的字典,其排序顺序为字典键,如

 SortDict = {'Jan-':1,'Feb-':2,'Mar-':3,'Q1':4 ... 'Sum':n}

然后根据字典对每年的列表进行排序。您可能想要引用其他question/answer