>백엔드 개발 >파이썬 튜토리얼 >숫자가 포함된 문자열을 올바르게 정렬하는 방법은 무엇입니까?

숫자가 포함된 문자열을 올바르게 정렬하는 방법은 무엇입니까?

DDD
DDD원래의
2024-12-03 14:49:10312검색

How to Sort Strings Containing Numbers Correctly?

숫자로 문자열을 올바르게 정렬하는 방법

숫자가 포함된 문자열을 정렬하는 것은 어려울 수 있습니다. 기본 sort() 메서드는 각 문자를 자체 엔터티로 처리하므로 순서가 잘못됩니다. 이러한 문자열을 올바르게 정렬하려면 보다 정교한 접근 방식이 필요합니다.

한 가지 효과적인 방법은 정규식을 사용하여 문자열에서 숫자 구성 요소를 추출하는 휴먼 정렬입니다. 이 기술을 사용하면 알파벳 부분과 관계없이 숫자를 정렬할 수 있습니다.

사람 정렬을 구현하려면 다음 단계를 따르세요.

  1. re 모듈을 가져옵니다.
  2. 문자열을 정수로 변환하거나 정수가 아닌 경우 문자열로 두는 함수 atoi(text)를 정의합니다. number.
  3. 정규식(d )을 사용하여 문자열을 분할하는 natural_keys(text) 함수를 정의합니다.
  4. sort()의 키 매개변수를 사용하여 목록을 정렬하고 natural_keys를 전달합니다. 함수.

예:

import re

def atoi(text):
    return int(text) if text.isdigit() else text

def natural_keys(text):
    return [ atoi(c) for c in re.split(r'(\d+)', text) ]

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

alist.sort(key=natural_keys)
print(alist)

출력:

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

이 접근 방식은 알파벳 부분과 숫자 부분을 모두 고려하여 문자열을 찾습니다.

위 내용은 숫자가 포함된 문자열을 올바르게 정렬하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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