31 Stimmen

Daten in Python-Array sortieren

Wie sortiert man das unten stehende Array von Daten auf Python 2.4

 timestamps = ['2011-06-2', '2011-08-05', '2011-02-04', '2010-1-14', '2010-12-13', '2010-1-12', '2010-2-11', '2010-2-07', '2010-12-02', '2011-11-30', '2010-11-26', '2010-11-23', '2010-11-22', '2010-11-16']

13 Stimmen

Warum verwenden Sie Python 2.4?

1voto

print(sorted(list_of_strings,key=lambda x :(int(x.split('-')[0]),int(x.split('-')[1]),int(x.split('-')[2])))

0voto

Diese Sortierung erfolgt in aufsteigender Reihenfolge der Daten im Format tt/mm/jjjj

from datetime import datetime 
c_array=['07/12/2017', '30/01/2018', '31/05/2016', '30/09/2016', '30/01/2017', '31/05/2017']

sorted(c_array, key=lambda x: datetime.strptime(x, "%d/%m/%Y").strftime("%Y-%m-%d"))
#out: ['31/05/2016', '30/09/2016', '30/01/2017', '31/05/2017', '07/12/2017', '30/01/2018']

0voto

peterb Punkte 801

In Python 3 und mit (meinem persönlichen Favoriten) Auffassungen . Für Daten würde ich immer Pythons datetime lib:

from datetime import date
timestamps = ['2011-06-2', '2011-08-05', '2011-02-04', '2010-1-14', '2010-12-13', '2010-1-12', '2010-2-11', '2010-2-07', '2010-12-02', '2011-11-30', '2010-11-26', '2010-11-23', '2010-11-22', '2010-11-14']
timestamps = [date(*[int(y) for y in x.split("-")]) for x in timestamps]
sorted_timestamps = sorted(timestamps)

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X