>백엔드 개발 >파이썬 튜토리얼 >포함된 숫자와 부동 소수점이 포함된 문자열을 자연스럽게 정렬하려면 어떻게 해야 합니까?

포함된 숫자와 부동 소수점이 포함된 문자열을 자연스럽게 정렬하려면 어떻게 해야 합니까?

Susan Sarandon
Susan Sarandon원래의
2024-11-30 06:59:14624검색

How Can I Sort Strings Containing Embedded Numbers and Floats Naturally?

삽입된 숫자로 문자열 정렬

숫자가 포함된 문자열 목록을 정렬하는 것은 다양한 데이터 유형으로 인해 어려울 수 있습니다. 다음 접근 방식은 이러한 문자열을 올바르게 정렬하기 위한 솔루션을 제공합니다.

문자열을 전처리하기 위해 도우미 함수 atoi()를 정의합니다. 이 함수는 문자열이 숫자를 나타내는 경우 문자열을 정수로 변환합니다. 그렇지 않으면 원래 문자열을 반환합니다. 이는 문자열에서 숫자 구성요소를 추출하는 데 도움이 됩니다.

다음으로 정규식을 사용하여 문자열을 분할하고 각 구성요소에 atoi() 함수를 적용하는 natural_keys() 함수를 소개합니다. 그러면 목록이 정렬 가능한 형식으로 변환됩니다.

sort() 메서드를 사용하여 natural_keys() 함수를 키 인수로 적용합니다. 알파벳순과 숫자 구성요소를 모두 고려하여 목록을 사람 순서로 정렬합니다.

예:

다음 문자열 목록을 고려하세요.

["something1", "something12", "something17", "something2", "something25", "something29"]

natural_keys() 함수를 사용하여 이 목록 정렬 생성:

['something1', 'something2', 'something12', 'something17', 'something25', 'something29']

부동 소수점을 사용하여 텍스트 정렬:

부동 소수점을 포함하도록 기능을 확장하려면 natural_keys()의 정규식 패턴을 부동 소수점과 일치하도록 수정할 수 있습니다. -포인트 숫자.

return [ atof(c) for c in re.split(r'[+-]?([0-9]+(?:[.][0-9]*)?|[.][0-9]+)', text) ]

여기서 atof()는 문자열을 문자열로 변환하려고 시도하는 도우미 함수입니다. float.

이를 통해 알파벳 및 부동 소수점 구성 요소를 모두 포함하는 문자열을 정렬할 수 있습니다.

위 내용은 포함된 숫자와 부동 소수점이 포함된 문자열을 자연스럽게 정렬하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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