>백엔드 개발 >파이썬 튜토리얼 >Python에서 자연 문자열 정렬을 어떻게 수행할 수 있습니까?

Python에서 자연 문자열 정렬을 어떻게 수행할 수 있습니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-12-28 14:29:11275검색

How Can I Perform Natural String Sorting in Python?

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.