Python의 자연적인 문자열 정렬
Python에서 기본 sorted() 함수를 사용하여 문자열 목록을 알파벳순으로 정렬하면 원하는 결과를 얻지 못할 수 있습니다. "자연스러운" 순서. 이는 sorted()가 문자열을 개별 문자로 처리하여 부자연스러운 순서를 초래하기 때문입니다.
예를 들어 다음 문자열 목록을 고려하세요.
['elm0', 'elm1', 'Elm2', 'elm9', 'elm10', 'Elm11', 'Elm12', 'elm13']
sorted()를 사용하여 이 목록을 정렬합니다. 다음을 생성합니다.
['Elm11', 'Elm12', 'Elm2', 'elm0', 'elm1', 'elm10', 'elm13', 'elm9']
문자 다음의 숫자는 다음과 같이 처리되는 것이 아니라 알파벳순으로 정렬되므로 이는 자연스러운 정렬 순서가 아닙니다.
자연스러운 문자열 정렬을 구현하려면 natsort 라이브러리를 활용하세요. Natsort는 자연스러운 숫자 순서를 유지하면서 보다 직관적인 방식으로 문자열을 정렬하는 기능을 제공합니다.
pip를 사용하여 natsort를 설치할 수 있습니다.
pip install natsort
주어진 항목에 대해 자연 정렬을 수행하려면 목록에서 natsorted() 함수를 사용하세요.
from natsort import natsorted x = ['Elm11', 'Elm12', 'Elm2', 'elm0', 'elm1', 'elm10', 'elm13', 'elm9'] natsorted(x, key=lambda y: y.lower())
이렇게 하면 원하는 자연 정렬이 생성됩니다. order:
['elm0', 'elm1', 'Elm2', 'elm9', 'elm10', 'Elm11', 'Elm12', 'elm13']
natsort_keygen() 함수를 사용하여 정렬 키를 생성할 수도 있습니다:
from natsort import natsort_keygen natsort_key = natsort_keygen(key=lambda y: y.lower()) list.sort(key=natsort_key)
이것은 natsorted()와 동일한 방식으로 목록을 정렬합니다.
natsorted() 및 natsort_keygen() 외에도 natsort는 다음을 제공합니다. os_sorted() 및 os_sort_keygen() 함수. 이러한 기능을 사용하면 운영 체제 파일 탐색기의 정렬 동작에 따라 목록을 정렬할 수 있습니다. 이는 natsort의 기본 동작과 다를 수 있습니다.
위 내용은 Python에서 자연 문자열 정렬을 어떻게 달성할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!