Python의 아날로그와 PHP의 natsort 함수: 자연 순서 정렬
자연 정렬 알고리즘은 사람이 읽을 수 있는 순서로 문자열 목록을 정렬하고 숫자를 그룹화합니다. 그리고 다른 캐릭터들도 함께요. "12"를 "3"보다 작은 것으로 처리하는 기본 정렬 방법과 달리 자연 정렬은 ["1", "10", "12", "3"]을 생성합니다.
Python에서는 커스텀 키 기능을 이용하여 자연스러운 정렬 기능을 구현할 수 있습니다. 다음 코드 조각은 PHP의 natsort와 유사한 구현을 제공합니다.
<code class="python">import re def natural_key(string_): """See https://blog.codinghorror.com/sorting-for-humans-natural-sort-order/""" return [int(s) if s.isdigit() else s for s in re.split(r'(\d+)', string_)]</code>
예:
<code class="python">L = ['image1.jpg', 'image15.jpg', 'image12.jpg', 'image3.jpg'] sorted(L) # Output: ['image1.jpg', 'image12.jpg', 'image15.jpg', 'image3.jpg'] sorted(L, key=natural_key) # Output: ['image1.jpg', 'image3.jpg', 'image12.jpg', 'image15.jpg']</code>
유니코드 문자열의 경우 isdigit() 대신 isdecimal()을 사용합니다. Python 2의 바이트 문자열의 경우 bytestring.decode().isdigit()를 사용해야 합니다.
위 내용은 PHP의 natsort 함수에 해당하는 Python을 구현하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!