숫자 문자열 목록 정렬
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 = [int(x) for x in list1] list1.sort()
주요 기능 사용:
대신 문자열을 보존해야 하는 경우 이를 정수로 변환하려면 sort() 함수에서
list1 = ["1", "10", "3", "22", "23", "4", "2", "200"] list1.sort(key=int)
또는 a에서 key 매개변수를 사용할 수 있습니다. 한 줄:
list1 = sorted([int(x) for x in list1])
두 경우 모두 int() 함수가 각 문자열을 비교하기 전에 키로 호출되어 목록을 숫자로 정렬할 수 있습니다.
위 내용은 Python에서 숫자 문자열 목록을 정렬하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!