>백엔드 개발 >파이썬 튜토리얼 >목록 정렬: Python의 정렬, 정렬 및 numpy.argsort 메서드에 대한 자세한 설명

목록 정렬: Python의 정렬, 정렬 및 numpy.argsort 메서드에 대한 자세한 설명

王林
王林원래의
2023-06-10 09:22:162224검색

Python 프로그래밍에서는 목록이나 배열을 정렬해야 하는 경우가 많습니다. Python은 sort, sorted, numpy.argsort 등을 포함한 다양한 정렬 방법을 제공합니다. 이 기사에서는 이러한 정렬 방법의 사용법과 주의 사항을 자세히 소개합니다.

1. 정렬 방법
정렬 방법은 Python 목록에 내장된 방법으로, 목록을 제자리에서 정렬할 수 있으며(즉, 값을 반환하지만 새 정렬 개체를 생성하지 않음) 추가 작업이 필요하지 않습니다. 라이브러리를 가져옵니다. 정렬 방법에는 key와 reverse라는 두 가지 매개변수가 있습니다. key는 정렬할 때 사용되는 키를 나타내고, reverse는 역정렬을 수행할지 여부를 나타냅니다. 예:

my_list = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
my_list.sort()
print(my_list) # 输出 [1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]

my_list.sort(reverse=True)
print(my_list) # 输出 [9, 6, 5, 5, 5, 4, 3, 3, 2, 1, 1]

my_list = ["apple", "banana", "cherry", "orange"]
my_list.sort(key=lambda x: len(x))
print(my_list) # 输出 ["apple", "cherry", "orange", "banana"]

위 예에서 첫 번째 예는 정수 목록을 정렬하고, 두 번째 예는 목록을 역순으로 정렬하며, 세 번째 예는 람다 표현식을 사용하여 문자열 목록을 길이별로 정렬합니다.

정렬 방법이 제자리에 정렬되어 있으므로 원래 목록의 순서가 변경되므로 반환 값이 None이므로 정렬된 목록에 대한 작업을 직접 수행할 수 없으므로 복사본을 만들거나 사용해야 합니다. 정렬 전의 다른 메서드. Method는 정렬된 결과를 저장합니다.

2. 정렬 함수
정렬 함수는 목록, 튜플, 문자열 등을 정렬하고 원래 입력 개체를 변경하지 않고 새로운 정렬 개체를 반환할 수 있는 Python에 내장된 함수입니다. 정렬 함수의 매개변수는 키와 역방향을 포함하여 정렬 방법과 동일합니다. 예:

my_list = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
new_list = sorted(my_list)
print(new_list) # 输出 [1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]

new_list = sorted(my_list, reverse=True)
print(new_list) # 输出 [9, 6, 5, 5, 5, 4, 3, 3, 2, 1, 1]

my_list = ["apple", "banana", "cherry", "orange"]
new_list = sorted(my_list, key=lambda x: len(x))
print(new_list) # 输出 ["apple", "cherry", "orange", "banana"]

정렬된 함수의 반환 값은 목록, 튜플, 문자열 등이 될 수 있습니다. 반환 결과의 유형은 입력 유형에 따라 결정됩니다.

3. Numpy.argsort 메서드
numpy.argsort 메서드는 numpy의 메서드로 주로 numpy 배열을 정렬하는 데 사용됩니다. argsort 메소드는 정렬된 첨자를 반환합니다. numpy.argsort 메소드의 매개변수도 key 및 reverse입니다. 예:

import numpy as np

my_array = np.array([3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5])
sort_index = np.argsort(my_array)
print(sort_index) # 输出 [1 3 6 0 9 2 4 8 7 5 10]

sort_index = np.argsort(-my_array)
print(sort_index) # 输出 [5 7 4 2 0 3 6 8 9 1 10]

my_array = np.array(["apple", "banana", "cherry", "orange"])
sort_index = np.argsort([len(x) for x in my_array])
print(sort_index) # 输出 [0 2 3 1]

위 예에서 첫 번째 예는 numpy 배열을 오름차순으로 정렬하고 정렬된 첨자를 반환합니다. 두 번째 예에서는 내림차순으로 정렬하려면 배열을 반전시켜야 합니다. 세 번째 예에서는 문자열 배열을 길이별로 정렬합니다.

numpy.argsort 메소드는 첨자 목록을 반환하며 정렬 결과를 얻으려면 첨자를 사용해야 한다는 점에 유의해야 합니다.

요약:
이 기사에서는 Python에서 목록과 배열을 정렬하는 데 사용할 수 있는 Python의 sort, sorted 및 numpy.argsort 메서드를 주로 소개합니다. sort 메소드와 sorted 함수는 Python의 내장 객체를 정렬할 수 있으며, numpy.argsort 메소드는 numpy의 메소드로 주로 numpy 배열을 정렬하는 데 사용됩니다. 이러한 방법은 키 및 역방향과 같은 매개변수를 사용하여 필요에 따라 다양한 정렬 방법을 선택해야 합니다.

위 내용은 목록 정렬: Python의 정렬, 정렬 및 numpy.argsort 메서드에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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