Python 예제와 함께 sort() 나열

sort() 메소드는 무엇입니까? Python?

정렬 기능 Python 목록을 오름차순 또는 내림차순으로 정렬하는 데 도움이 됩니다. 숫자 목록, 튜플 및 문자열 목록을 정렬하는 데 사용할 수 있습니다. 별도의 목록을 만들지 않고 원본을 수정하거나 정렬합니다.

Sort 메소드의 구문 Python

정렬 함수의 구문은 아래와 같습니다. –

List.sort(key=…, reverse=…)

정렬 기능에는 아래 나열된 두 가지 선택적 매개 변수가 있습니다. –

  • 키:- 정렬 기준에 따라 기능을 정렬하는 데 사용됩니다.
  • Reverse: – 값을 true 또는 false로 사용합니다. true인 경우 이 사용자 정의 함수는 목록을 내림차순으로 정렬합니다.

Sort 메서드를 사용하여 목록을 오름차순으로 정렬 Python

In Python, 정렬 기능은 기본적으로 모든 목록을 오름차순으로 정렬합니다. 오름차순 목록은 왼쪽에 가장 낮은 값이 있고 오른쪽에 가장 높은 값이 있습니다.

예:

Python 암호:

base_list=["Google","Reliance","Guru99","Content","Syntax"]
base_list.sort()
print("the base list after sorting is",base_list)

출력:

the base list after sorting is ['Content', 'Google', 'Guru99', 'Reliance', 'Syntax']

코드 설명 :

  • 위 목록은 무작위로 정의된 문자열 목록입니다.
  • 정렬 기능 Python 왼쪽에 가장 낮은 단어 길이, 오른쪽에 가장 높은 단어 길이를 사용하여 무작위 목록을 오름차순으로 정렬하는 데 도움이 됩니다.

목록을 내림차순으로 정렬

정렬 기능을 사용하면 목록을 내림차순으로 정렬할 수도 있습니다. 순서로 정의할 수 있습니다. 여기서 목록은 가장 높은 값으로 시작하고 가장 낮은 값으로 끝납니다.

목록을 내림차순으로 정렬하려면 정렬 함수의 reverse 매개변수를 true로 지정합니다.

아래 예를 살펴 보겠습니다. –

Python 암호:

base_list=[100,600,400,8000,50]
base_list.sort()
print("the base list after sorting is",base_list)
# Reverse Order
base_list.sort(reverse=True)
print("the base list after REVERSE sorting is",base_list)

출력:

the base list after sorting is [50, 100, 400, 600, 8000]
the base list after REVERSE sorting is [8000, 600, 400, 100, 50]

참고: 런타임 오류를 방지하려면 reverse 매개변수에 "True"라는 단어를 할당할 때 대문자 "T"로 시작하는지 확인하세요.

Sort 메서드를 사용하여 튜플 목록 정렬 Python

Python 튜플 순서가 지정된 시퀀스를 따르는 불변 요소의 컬렉션입니다. Python의 정렬 함수는 사용자 정의된 함수와 람다 표현식을 사용하여 튜플 목록을 정렬하는 데 사용할 수 있습니다.

사용자 정의 함수는 이름 없이 생성될 수 있으며 람다 표현식으로 표현될 수 있습니다. 다음은 람다 표현식의 구문입니다. –

구문 :

Lambda arguments: expression

위 구문은 아래 Python 코드와 동일합니다.

def name (arguments):
return expression

다음은 주요 매개변수가 있는 정렬 함수가 튜플의 요소를 정렬하는 데 어떻게 도움이 되는지 보여주는 튜플 및 사용자 정의 함수의 예입니다.

Python 암호:

base_list = [('Alto', 2020, 500),('MSFT', 2022, 300),('Guru99', 2019, 1070)]
def get_key(base_list):
    return base_list[2]
base_list.sort(key=get_key,reverse=True)
print("The change in base list is as follows",base_list)

출력:

The change in the base list is as follows [('Guru99', 2019, 1070), ('Alto', 2020, 500), ('MSFT', 2022, 300)]

코드 설명 :

  • 튜플을 내림차순으로 정렬하려면 reverse 매개변수를 true로 정의합니다.
  • 사용자 정의된 함수는 튜플의 두 번째 요소를 사용합니다.
  • 이는 정렬 기능의 키로 활용됩니다.

람다 표현식을 사용하는 아래 예를 살펴보겠습니다.

Python 암호:

base_list = [('Alto', 2020, 500),
('MSFT', 2022, 300),
('Guru99', 2019, 1070)]
base_list.sort(key=lambda base_list:base_list[2],reverse=True)
print("The change in base list is as follows",base_list)

출력:

The change in the base list is as follows [('Guru99', 2019, 1070), ('Alto', 2020, 500), ('MSFT', 2022, 300)]

설명 :

  • 람다 식은 키를 튜플의 두 번째 요소로 사용하여 튜플의 요소를 높은 수준에서 낮은 수준으로 정렬하는 데 도움이 됩니다.
  • 프로그램은 튜플의 두 번째 요소의 가장 높은 값을 확인합니다.

Len을 주요 매개변수로 사용하여 목록 항목 정렬

Len은 항목의 길이를 결정하는 내장 함수입니다. 결정된 길이는 정렬 기능의 인덱싱에 사용될 수 있습니다. 이를 위해 Len을 Python 정렬 함수의 주요 매개변수입니다.

다음 Python 코드는 정렬 함수와 함께 Len 함수를 사용하는 방법을 보여줍니다.

Python 암호:

base_list=["Alto", "Guru99", "Python", "Google", "Java"]
base_list.sort(key=len)
print("The sorted list based on length:",base_list)

출력:

The sorted list based on length: ['Alto', 'Java', 'Guru99', 'Python', 'Google']

코드 설명 :

Len을 사용하여 목록 항목 정렬

  • 요소의 길이는 목록을 오름차순으로 정렬하기 위한 key 매개변수의 인덱스가 됩니다.
  • Len 함수는 기본 목록에 있는 각 요소의 길이를 추정합니다.
  • 가장 짧은 요소는 왼쪽에, 가장 큰 요소는 오른쪽에 유지됩니다.
  • 여기서 alto 및 java라는 단어의 길이는 4로 목록의 첫 번째에 정렬되고 그 다음에는 길이가 99인 Guru6가 나열됩니다.

이 예에서는 아래와 같이 정렬 함수의 reverse 매개변수 개념을 보여줍니다. –

Python 암호:

base_list=["Alto", "Guru99", "Python", "Google", "Java"]
base_list.sort(key=len,reverse=True)
print("The sorted list based on length:",base_list)

출력:

The sorted list based on length: ['Guru99', 'Python', 'Google', 'Alto', 'Java']

사용자 정의 함수를 주요 매개변수로 사용하여 목록 항목 정렬

사용자 정의 함수를 주요 매개변수로 사용하여 목록을 정렬할 수도 있습니다. 예는 다음과 같습니다. –

Python 암호:

base_list = [{'Example':'Python','year':1991},{'Example':'Alto','year':2014},{'Example':'Guru99', 'year':1995},
{'Example':'Google','year':1985},{'Example':'Apple','year':2007},{'Example':'Emails','year':2010},]
def get_year(element):
    return element['year']
base_list.sort(key=get_year)
print("The base list after sorting using explicit criteria",base_list)

출력:

The base list after sorting using explicit criteria [{'Example': 'Google', 'year': 1985}, {'Example': 'Python', 'year': 1991}, {'Example': 'Guru99', 'year': 1995}, {'Example': 'Apple', 'year': 2007}, {'Example': 'Emails', 'year': 2010}, {'Example': 'Alto', 'year': 2014}]

코드 설명 :

  • 연도를 반환하는 사용자 정의 함수가 생성됩니다.
  • key 매개변수는 사용자 정의 함수를 기준으로 사용합니다.
  • 정렬 기능은 "연도" 요소의 값을 기준으로 목록을 오름차순으로 정렬합니다.

정렬 방법과 정렬 방법의 차이점 Python

차이점을 요약하기 전에 Sorted 메서드의 구문을 이해해 보겠습니다.

Python 구문 :

sorted (list_name, reverse=…., key=..)

코드 설명 :

  • sorted 함수는 목록을 오름차순 또는 내림차순으로 정렬합니다.
  • 이 함수는 세 개의 매개변수를 허용하며, 그 중 두 매개변수는 선택적 유형이고 하나의 매개변수는 필수 유형입니다.
  • Sorted 메소드를 사용하는 경우 매개변수 list_name이 필요합니다.
  • Sorted 메서드는 모든 유형의 반복 가능한 목록을 입력으로 사용할 수 있습니다.
  • 정렬된 방법에서 주요 매개변수와 역 매개변수는 선택적 매개변수입니다. Python.

다음은 sort 및 sorted 함수를 사용하는 예입니다. Python 아래와 같이: –

Python 암호:

#Use of the Sorted method
Base_list=[11,10,9,8,7,6]
print("the original list is",Base_list)
New_list=sorted(Base_list)
print("the New list using sorted method is",New_list)
#Use of the Sort method
Base_list=[11,10,9,8,7,6]
print("the original list is",Base_list)
New_list=Base_list.sort()
print("the New list using sort method is",New_list)

출력:

the original list is [11, 10, 9, 8, 7, 6]
the new list using the sorted method is [6, 7, 8, 9, 10, 11]
the original list is [11, 10, 9, 8, 7, 6]
the new list using the sort method is None

코드 설명 :

  • 원본 목록은 정렬된 함수에 대한 필수 매개변수로 전달됩니다.
  • Sorted 메서드는 원래 목록 외에 새 목록을 반환합니다.
  • sorted 메소드에 추가 매개변수가 전달되지 않으므로 새 목록은 기본적으로 오름차순으로 정렬됩니다.
  • 정렬 기능은 새로운 목록을 만들지 않습니다.

주요 유사점과 차이점에 대한 요점은 다음과 같습니다.

정렬된 기능 정렬 기능
정렬된 함수 Python list_name을 필수 매개변수로 사용하는 내장 함수입니다. 정렬 기능은 원본 목록을 매개변수로 사용하지 않습니다.
Sorted 메서드는 새 목록을 반환합니다. 정렬 함수가 새 목록을 반환하지 않습니다.
반복 가능한 목록에는 정렬된 함수를 사용해야 합니다. 반복할 수 없는 목록에는 정렬 기능을 사용해야 합니다.
원본 목록을 수정하지 않으며 원본 데이터를 유지할 수 있습니다. 정렬 기능은 원래 기능을 수정하므로 메모리 공간을 덜 차지합니다.

정렬 방법 또는 정렬 방법을 언제 활용합니까?

인종 데이터를 정렬해야 하는 예를 들어 보겠습니다. 프로그램은 경주를 완료하는 데 걸린 턱받이 번호와 시간(초)을 사용합니다.

Python 암호:

from collections import namedtuple
Base = namedtuple('Runner', 'bibnumber duration')
blist = []
blist.append(Base('8567', 1500))
blist.append(Base('5234', 1420))
blist.append(Base('2344', 1600))
blist.append(Base('2342', 1490))
blist.append(Base('23444', 1620))
blist.append(Base('6674', 1906))
print("original list",blist)
blist.sort(key=lambda x: getattr(x, 'duration'))
top_five_result = blist[:5]
print("Results using sort function",top_five_result)
r_blist=sorted(blist,key=lambda x: getattr(x, 'duration'))
top_five_result = r_blist[:5]
print("Results using sorted function",top_five_result)

출력:

original list [Runner(bibnumber='8567', duration=1500), Runner(bibnumber='5234', duration=1420), Runner(bibnumber='2344', duration=1600), Runner(bibnumber='2342', duration=1490), Runner(bibnumber='23444', duration=1620), Runner(bibnumber='6674', duration=1906)]

Results using sort function [Runner(bibnumber='5234', duration=1420), Runner(bibnumber='2342', duration=1490), Runner(bibnumber='8567', duration=1500), Runner(bibnumber='2344', duration=1600), Runner(bibnumber='23444', duration=1620)]

Results using sorted function [Runner(bibnumber='5234', duration=1420), Runner(bibnumber='2342', duration=1490), Runner(bibnumber='8567', duration=1500), Runner(bibnumber='2344', duration=1600), Runner(bibnumber='23444', duration=1620)]

코드 설명 :

  • 기본 목록은 sort 함수와 sorted 함수를 모두 사용하여 정렬됩니다.
  • 정렬 기능을 적용하면 기본 목록이 손실됩니다.
  • 정렬 기능은 원본 데이터 세트에 적용되어서는 안 됩니다. 원본 데이터 세트의 복사본 버전이 있는 경우 사용해야 합니다.
  • Sorted 함수는 원래 목록을 유지합니다. 이를 재정의하지 않습니다.
  • 이는 더 나은 추적성과 효과적인 데이터 관리를 제공합니다.

결론

  • sort 함수는 Python에서 숫자 및 문자열 목록을 정렬하는 데 도움이 됩니다.
  • 튜플을 정렬하는 데에도 도움이 될 수 있습니다.
  • Reverse 및 key는 함수의 선택적 매개변수입니다.
  • 별도의 목록과 동시에 원래 목록이 필요한 경우에는 정렬 함수를 사용해야 합니다. 그렇지 않은 경우에는 정렬 함수를 활용하여 메모리 사용을 최적화해야 합니다.