Bonjour,
L'affichage est peut-être trompeur: on a l'impression que les lignes ont le même nombre de caractères, mais la dernière ligne en a un de plus. Ce qui fait que le "2016" est décalé.
Si la structure était identique, c'est à dire que les dates se trouvaient à la même place, on pourrait faire ceci:
1 2 3 4 5 6 7
| lignes = [
"CCC!LL!EEEE!EW050034!2016-04-30T04:39:54.000Z!7!1!1!1",
"CCC!LL!EEEE!GH676589!2016-02-01T04:39:54.000Z!7!1!1!1",
"CCC!LL!EEEE!IJ6758004!2015-04-01T04:39:54.000Z!7!1!1!1"
]
lignes.sort(key=lambda ligne: ligne[21:31]) |
Comme ce n'est pas le cas, on va supposer que les '!' constituent un bon repère pour trouver les dates:
lignes.sort(key=lambda ligne: ligne.split('!')[4])
A noter: la liste est triée "sur place", ce qui veut dire que "lignes" est désormais la liste triée. Si on veut conserver la liste initiale, il faut utiliser sorted au lieu de sort (voir la doc).
Partager