문자열 숫자 목록을 숫자순으로 정렬
간단함에도 불구하고 Python sort() 함수는 숫자를 나타내는 문자열을 처리할 때 오해의 소지가 있을 수 있습니다. . 아래 코드 조각에서 볼 수 있듯이 이러한 문자열을 정수로 변환한 다음 정렬하려고 하면 잘못된 결과가 생성됩니다.
list1 = ["1", "10", "3", "22", "23", "4", "2", "200"] for item in list1: item = int(item) list1.sort() print(list1)
출력:
['1', '10', '2', '200', '22', '23', '3', '4']
이 문제를 해결하려면 다음을 수행해야 합니다. 실제로 문자열을 정수로 변환합니다. 수정된 코드는 다음과 같습니다.
list1 = ["1", "10", "3", "22", "23", "4", "2", "200"] list1 = [int(x) for x in list1] list1.sort()
이렇게 하면 올바른 숫자 순서가 출력됩니다.
['1', '2', '3', '4', '10', '22', '23', '200']
또는 요소를 문자열로 유지해야 하는 경우 key 매개변수를 sort로 사용할 수 있습니다. (). 이 매개변수는 비교되기 전에 각 요소에 대해 호출되는 함수를 허용합니다. 요소 자체 대신 키 함수의 반환 값이 비교에 사용됩니다.
예:
list1 = ["1", "10", "3", "22", "23", "4", "2", "200"] list1.sort(key=int)
또는
list1 = sorted([int(x) for x in list1])
위 내용은 Python에서 문자열 숫자 목록을 숫자로 정렬하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!