Python의 자연 문자열 정렬
자연 정렬은 문자열 번호와 버전을 올바르게 처리하는 알파벳 정렬 알고리즘입니다. 예를 들어, 수학적 비교에서 "10"이 "0"보다 큰 것으로 간주되더라도 "elm0"을 "elm10"보다 먼저 정렬해야 합니다.
Python의 기본 sorted() 함수는 기본적으로 자연 정렬을 수행하지 않습니다. 이 동작을 달성하려면 자연 정렬 알고리즘을 구현하는 natsort 라이브러리를 활용할 수 있습니다.
natsort를 사용하려면 다음을 통해 설치하세요.
pip install natsort
그런 다음 요구 사항에 따라 정렬 기능이나 정렬 키를 사용할 수 있습니다:
정렬 기능:
from natsort import natsorted names = ['elm0', 'elm1', 'Elm2', 'elm9', 'elm10', 'Elm11', 'Elm12', 'elm13'] natsorted(names) # ['elm0', 'elm1', 'Elm2', 'elm9', 'elm10', 'Elm11', 'Elm12', 'elm13']
정렬 키:
from natsort import natsort_keygen names = ['elm0', 'elm1', 'Elm2', 'elm9', 'elm10', 'Elm11', 'Elm12', 'elm13'] sort_key = natsort_keygen() names.sort(key=sort_key) # ['elm0', 'elm1', 'Elm2', 'elm9', 'elm10', 'Elm11', 'Elm12', 'elm13']
또는 원하는 경우 natsort의 대소문자를 구분하지 않는 정렬 알고리즘을 사용할 수 있습니다.
from natsort import ns natsorted(names, alg=ns.IGNORECASE) # ['elm0', 'elm1', 'Elm2', 'elm9', 'elm10', 'Elm11', 'Elm12', 'elm13']
natsort 라이브러리는 자연 정렬을 수행하기 위한 포괄적인 솔루션을 제공합니다. Python에서는 다양한 입력 형식을 처리하고 대소문자를 구분하지 않는 정렬 옵션을 제공할 뿐만 아니라 운영 체제 파일 시스템 브라우저 정렬과의 호환성도 제공합니다.
위 내용은 Python에서 자연 문자열 정렬을 어떻게 수행할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!