我的字符串看起来像“co1 / co2”,“co3 / co4”……“co11 / co12”
将其描述为正则表达式:
^(?P\w\w)(?P\d+)/(?P\w\w)(?P\d+)$
我想根据正则表达式的“月”组的等价物对这些字符串的集合进行排序. (字符串中的第一个数字(例如,’co1 / co2’中的“1”或’co12 / co13中的“12”)
我无法弄清楚我可以在sorted()中使用的lambda函数,但是我会这样做.
wrong_order = [u'co1/co2', u'co10/co11', u'co11/co12', u'co12/co13', u'co2/co3',
u'co3/co4', u'co4/co5', u'co5/co6', u'co6/co7', u'co7/co8', u'co8/co9',
u'co9/co10']
correct_order = [u'co1/co2', u'co2/co3', u'co3/co4', u'co4/co5', u'co5/co6', \
u'co6/co7', u'co7/co8', u'co8/co9', u'co9/co10', u'co10/co11', u'co11/co12', u'co12/co13']
#this lambda function doesn't work
output = sorted(wrong_order, key=lambda x: (x[2:]))