Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python에서 날짜 문자열 목록을 정렬하는 방법

Python에서 날짜 형식의 문자열 목록을 sort() 함수로 정렬하려면, 단순한 문자열 비교가 아닌 실제 날짜 기준으로 정렬해야 합니다. 이를 위해서는 각 날짜 문자열을 datetime 객체로 변환한 뒤 정렬하는 것이 가장 확실한 방법입니다.

sort() 함수의 key 매개변수에 람다(lambda) 함수를 지정하면 됩니다. 이 람다 함수는 각 날짜 문자열을 datetime 객체로 만들어 주며, 정렬은 이 객체를 기준으로 수행됩니다.

예제 코드

from datetime import datetime

my_dates = ['5-Nov-18', '25-Mar-17', '1-Nov-18', '7-Mar-17']
my_dates.sort(key=lambda date: datetime.strptime(date, "%d-%b-%y"))
print(my_dates)

실행 결과

위 코드를 실행하면 다음과 같이 날짜 순서대로 정렬된 결과를 얻을 수 있습니다.

['7-Mar-17', '25-Mar-17', '1-Nov-18', '5-Nov-18']

코드 설명

datetime.strptime(date, "%d-%b-%y")는 문자열을 해석하여 datetime 객체로 변환합니다. 여기서 사용된 포맷 코드의 의미는 다음과 같습니다.

  • %d: 일(day), 예: 05
  • %b: 축약된 월 이름, 예: Nov
  • %y: 두 자리 연도, 예: 18

만약 날짜 문자열의 형식이 다르다면(예: '2024-05-01'), 포맷 문자열만 그에 맞게 변경하면 됩니다. 또한 원본 목록을 변경하지 않고 새로운 정렬 목록을 얻고 싶다면 sorted() 대신 아래와 같이 사용할 수 있습니다.

sorted_dates = sorted(my_dates, key=lambda date: datetime.strptime(date, "%d-%b-%y"))

이 방법을 활용하면 다양한 형식의 날짜 문자열 목록도 손쉽게 시간순으로 정렬할 수 있습니다.