AMcoder - javascript, python, java, html, php, sql

Տեսակավորել ամսաթվերի ցանկն ըստ ամսվա python-ում [կրկնօրինակ]

Ես ունեմ այսպիսի ցուցակ.

['25/May/2015', '27/May/2015', '27/Apr/2015', '27/Jan/2015', '07/May/2015' '22/May/2015', '16/Jan/2015', '29/Jan/2015', '28/Feb/2015', '18/Feb/2015', '08/May/2015', '20/Jan/2015', '24/Jan/2015', '31/Mar/2015', '30/Apr/2015', '17/Feb/2015', '19/Mar/2015', '05/May/2015', '22/Jan/2015', '14/Aug/2015', '26/Feb/2015', '14/Mar/2015', '28/May/2015']']

Ես ուզում եմ պատվիրել ամսաթվերն ըստ ամիսների՝ յան, փետրվար, մարտ և այլն... բայց նաև ուզում եմ պատվիրել դրանք ըստ օրերի, սա նշանակում է, որ առաջին օրը պետք է լինի՝ 1/jan/2015, ապա 2/jan/2015

Ես փորձեցի տեսակավորել ցուցակը.

days.sort()

ԲԱՅՑ այն դասակարգում է ցուցակն ըստ օրերի և ոչ ամիսների:

Ցանկացածը իսկապես կգնահատվի

29.08.2015


Պատասխանները:


1

Փորձեք տեսակավորված բանալիով:

from datetime import datetime
days_sorted = sorted(days, key=lambda day: datetime.strptime(day, "%d/%b/%Y"))
29.08.2015
  • կատարյալ, շնորհակալություն: Կարո՞ղ եմ խնդրել ձեզ բացատրել ինձ, թե ինչպես է սա աշխատում: 5 րոպեից ճիշտ կնշեմ։ 30.08.2015
  • Հիմնական բանն այն է, որ ձեր տողերը վերածեք տեսակավորվող ինչ-որ բանի, և դա datetime օբյեկտներ (datetime.strptime) է այստեղ: "%d/%b/%Y" պարզապես ձեր ամսաթվերի ձևաչափն է: 30.08.2015

  • 2

    Դուք ցանկանում եք տեսակավորել ամսաթվերը՝ օգտագործելով ձեր սեփական համեմատման գործառույթը: sort-ը դա թույլ է տալիս, պարզապես անհրաժեշտ է ասել list.sort(key=comparison_function): Ձեր ցուցակի ամիսները համեմատելու գործառույթ կազմելու համար մի պարզ գաղափար, որը ես առաջ քաշեցի

    months = {"Jan":0, "Feb":1, "Mar":2, "Apr":3, "May":4, "Jun":5, "Jul":6, "Aug":7, "Sep":8, "Oct":9, "Nov":10, "Dec":11 }
    

    Կազմեք dict, որը յուրաքանչյուր ամիս վերածվում է համապատասխան թվի

    def month_value(date):
        return months[date.split('/')[1]]
    

    Գրեք մի ֆունկցիա, որը վերցնում է ձեր տողերից մեկը և վերադարձնում դրա երկրորդ բաղադրիչի արժեքը:

    dates.sort(key=month_value)
    

    Սա կդասավորի ամսաթվերը տեղում՝ ըստ դրանց ամսվա:

    29.08.2015
    Նոր նյութեր

    Օգտագործելով Fetch Vs Axios.Js-ը՝ HTTP հարցումներ կատարելու համար
    JavaScript-ը կարող է ցանցային հարցումներ ուղարկել սերվեր և բեռնել նոր տեղեկատվություն, երբ դա անհրաժեշտ լինի: Օրինակ, մենք կարող ենք օգտագործել ցանցային հարցումը պատվեր ներկայացնելու,..

    Տիրապետել հանգստության արվեստին. մշակողի ուղեցույց՝ ճնշման տակ ծաղկելու համար
    Տիրապետել հանգստության արվեստին. մշակողի ուղեցույց՝ ճնշման տակ ծաղկելու համար Ինչպե՞ս հանգստացնել ձեր միտքը և աշխատեցնել ձեր պրոցեսորը: Ինչպես մնալ հանգիստ և զարգանալ ճնշման տակ...

    Մեքենայի ուսուցում բանկային և ֆինանսների ոլորտում
    Բարդ, խելացի անվտանգության համակարգերը և հաճախորդների սպասարկման պարզեցված ծառայությունները բիզնեսի հաջողության բանալին են: Ֆինանսական հաստատությունները, մասնավորապես, պետք է առաջ մնան կորի..

    Ես AI-ին հարցրի կյանքի իմաստը, այն ինչ ասում էր, ցնցող էր:
    Այն պահից ի վեր, երբ ես իմացա Արհեստական ​​ինտելեկտի մասին, ես հիացած էի այն բանով, թե ինչպես է այն կարողանում հասկանալ մարդկային նորմալ տեքստը, և այն կարող է առաջացնել իր սեփական արձագանքը դրա..

    Ինչպես սովորել կոդավորումը Python-ում վագրի պես:
    Սովորելու համար ծրագրավորման նոր լեզու ընտրելը բարդ է: Անկախ նրանից, թե դուք սկսնակ եք, թե առաջադեմ, դա օգնում է իմանալ, թե ինչ թեմաներ պետք է սովորել: Ծրագրավորման լեզվի հիմունքները, դրա..

    C++-ի օրական բիթ(ե) | Ամենաերկար պալինդրոմային ենթաշարը
    C++ #198-ի ամենօրյա բիթ(ե), Ընդհանուր հարցազրույցի խնդիր. Ամենաերկար պալինդրոմային ենթատող: Այսօր մենք կանդրադառնանք հարցազրույցի ընդհանուր խնդրին. Ամենաերկար palindromic substring...

    Kydavra ICAReducer՝ ձեր տվյալների ծավալայինությունը նվազեցնելու համար
    Ի՞նչ է ICAReducer-ը: ICAReducer-ն աշխատում է հետևյալ կերպ. այն նվազեցնում է նրանց միջև բարձր փոխկապակցված հատկանիշները մինչև մեկ սյունակ: Բավականին նման է PCAreducer-ին, չնայած այն..