LINUX.ORG.RU

Сортировать даты без километрового кода.

 ,


1

2

Есть вен^W люди, которые надеются на атрибуты файловой системы. Называющие файлы вот так:

17.03.2015
17.03.2015
17.03.2015
16.02.2015
16.02.2015
16.02.2015
16.02.2015
16.02.2015

Можно такое отсортировать без километрового кода с циклами, условиями и разделителями?

PS:

Тьфу я тормоз.

★★★★★

Последнее исправление: steemandlinux (всего исправлений: 2)

перевести в unix timestamp и отсотрировать тупо как число

anonymous
()

никаких тебе циклов и условий. не знаю, что такое разделители

map(lambda x: '.'.join(x.split('.').reversed()), datelist).sorted()
MyTrooName ★★★★★
()
Последнее исправление: MyTrooName (всего исправлений: 1)
Ответ на: комментарий от Sahas
17.03.2015
16.02.2015
16.02.2015
03.02.2015
03.03.2015
07.01.2015
12.01.2015

Засунь в текстовой файл и сделай sort. Нифига не будет нормального.

По нормальному их стоит назвать так: <year><month><date>

Но эти маусеры не такие.

steemandlinux ★★★★★
() автор топика

А блин я тормоз, числа местами переставить :( делал же уже так, сейчас тормознул.

steemandlinux ★★★★★
() автор топика
Ответ на: комментарий от MyTrooName

Блин я тормознул. В виде 20150213 оно перестаёт быть уродцем.

steemandlinux ★★★★★
() автор топика
Ответ на: комментарий от MyTrooName
sorted(datelist, key=lambda x: '.'.join(reversed(x.split('.'))))

тогда уж.

t184256 ★★★★★
()

Исходные данные

$ cat dates
17.03.2015
16.02.2015
16.02.2015
03.02.2015
03.03.2015
07.01.2015
12.01.2015

Сортировка

$ sort dates -t "."  -k 3 -k 2 -k 1
07.01.2015
12.01.2015
03.02.2015
16.02.2015
16.02.2015
03.03.2015
17.03.2015

DiMoN ★★★
()
Ответ на: комментарий от DiMoN

Даже не задумывался ман к сортировке глянуть.

steemandlinux ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.