es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Ordenar cadenas en python basándose en la fecha y hora.

Tengo una lista de cadenas de texto en el siguiente formato:

my_strings = [
    "10.02.20 time 09.24",    
    "06.02.20 time 08.51",    
    "10.02.20 time 09.24",    
    "10.02.20 time 09.25",    
    "10.02.20 time 09.26",    
    "10.02.20 time 09.27",    
    "10.02.20 time 09.28",    
    "10.02.20 time 09.29"
]

¿Cómo puedo ordenarlas por fecha y hora, tanto de forma ascendente como descendente? Creo que debería utilizar algo como:

my_strings.sort(key=lambda date: datetime.strptime(date, "%d-%b-%y"))

Pero esto no funciona.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para ordenar la lista de cadenas basándose en la fecha y hora, se puede utilizar el método datetime.strptime() para convertir la cadena en un objeto datetime y luego utilizarlo como clave para ordenar la lista. Sin embargo, es necesario utilizar la cadena de formato correcta para analizar la cadena en un objeto datetime.

    En este caso, el formato de la cadena de fecha es "%d.%m.%y time %H.%M", por lo que se debe utilizar esta cadena de formato para analizar la cadena de fecha.

    Para ordenar la lista de manera normal se puede utilizar:

    sorted_strings = sorted(my_strings, key=lambda x: datetime.strptime(x, "%d.%m.%y time %H.%M"))
    

    Para ordenar la lista en orden inverso, se puede agregar el parámetro reverse=True a la función sorted():

    reverse_sorted_strings = sorted(my_strings, key=lambda x: datetime.strptime(x, "%d.%m.%y time %H.%M"), reverse=True)
    

    Alternativamente, se puede utilizar el método sort() en el objeto de la lista en sí:

    my_strings.sort(key=lambda x: datetime.strptime(x, "%d.%m.%y time %H.%M"))
    my_strings.reverse()
    

Comments are closed.