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

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

Patricia Arquette
Patricia Arquette원래의
2024-12-26 11:17:09444검색

How Can I Achieve Natural String Sorting in Python?

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

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