본문 바로가기
Programing/Python

Python List sort() 사용하기

by 멍멍돌이야 2023. 3. 7.
반응형

이 자습서에서는 Python List sort() 메서드를 사용하여 목록을 정렬하는 방법을 배웁니다.

 

1. Python List sort() 메서드 소개

목록을 정렬하려면 sort() 메서드를 사용합니다.

list.sort()

sort() 메서드는 원래 목록을 제자리에 정렬합니다. 즉, sort() 메서드는 목록의 요소 순서를 수정합니다.

기본적으로 sort() 메서드는 보다 작음 연산자(<)를 사용하여 목록의 요소를 정렬합니다. 

즉, 상위 요소 앞에 하위 요소를 배치합니다.

상위에서 하위로 요소를 정렬하려면 다음과 같이 reverse=True 인수를 sort() 메서드에 전달합니다.

list.sort(reverse=True)

 

2. Python List sort() 메서드 예제

sort() 메서드를 사용하는 몇 가지 예를 살펴보겠습니다.

 

1) Python List sort() 메서드를 사용하여 문자열 목록 정렬

 

목록에 문자열이 포함된 경우 sort() 메서드는 문자열 요소를 사전순으로 정렬합니다.

다음 예제에서는 sort() 메서드를 사용하여 게스트 목록의 요소를 사전순으로 정렬합니다.

guests = ['James', 'Mary', 'John', 'Patricia', 'Robert', 'Jennifer']
guests.sort()

print(guests)

Output:

['James', 'Jennifer', 'John', 'Mary', 'Patricia', 'Robert']

다음 예제에서는 reverse=True 인수와 함께 sort() 메서드를 사용하여 

게스트 목록의 요소를 알파벳 역순으로 정렬합니다.

guests = ['James', 'Mary', 'John', 'Patricia', 'Robert', 'Jennifer']
guests.sort(reverse=True)

print(guests)

Output:

['Robert', 'Patricia', 'Mary', 'John', 'Jennifer', 'James']

 

2) Python List sort() 메서드를 사용하여 숫자 목록 정렬

목록에 숫자가 포함된 경우 sort() 메서드는 가장 작은 숫자에서 가장 큰 숫자로 숫자를 정렬합니다.

다음 예제에서는 sort() 메서드를 사용하여 점수 목록의 숫자를 최소에서 최대로 정렬합니다.

scores = [5, 7, 4, 6, 9, 8]
scores.sort()

print(scores)

Output:

[9, 8, 7, 6, 5, 4]

 

3) Python List sort() 메서드를 사용하여 튜플 목록 정렬

다음과 같은 튜플 목록이 있다고 가정합니다.

companies = [('Google', 2019, 134.81),
             ('Apple', 2019, 260.2),
             ('Facebook', 2019, 70.7)]

그리고 가장 높은 수익에서 가장 낮은 수익순으로 회사 목록을 정렬하려고 합니다. 

먼저 정렬 키를 지정하고 이를 sort() 메서드에 전달합니다. 정렬 키를 정의하려면 튜플을 수락하고 정렬하려는 요소를 반환하는 함수를 만듭니다.

def sort_key(company):
    return company[2]

이 sort_key() 함수는 회사라는 튜플을 수락하고 세 번째 요소를 반환합니다.

회사는 ('Google', 2019, 134.81)과 같은 튜플입니다. 그리고 회사[2]는 이 경우 134.81과 같은 수익을 참조합니다.

sort_key 함수를 sort() 메서드에 전달합니다.

companies.sort(key=sort_key, reverse=True)

sort() 메서드는 비교를 위해 sort_key() 함수에서 반환된 값을 사용합니다.

괄호 없이 함수 이름을 sort() 메서드에 전달하면 됩니다.

companies = [('Google', 2019, 134.81),
             ('Apple', 2019, 260.2),
             ('Facebook', 2019, 70.7)]


# define a sort key
def sort_key(company):
    return company[2]



# sort the companies by revenue
companies.sort(key=sort_key, reverse=True)

# show the sorted companies
print(companies)

Output:

[('Apple', 2019, 260.2), ('Google', 2019, 134.81), ('Facebook', 2019, 70.7)]

 

3. 람다 식 사용

더 간결하게 하기 위해 Python에서는 다음 구문을 사용하여 이름 없이 함수를 정의할 수 있습니다.

lambda arguments: expression

이름이 없는 함수를 익명 함수라고 합니다. 이 구문을 람다 식이라고 합니다.

기술적으로는 다음 기능과 동일합니다.

def name(arguments):
    return expression

다음 예에서는 람다 식을 사용하여 매출이 낮은 것에서 높은 순으로 회사를 정렬합니다.

companies = [('Google', 2019, 134.81),
             ('Apple', 2019, 260.2),
             ('Facebook', 2019, 70.7)]

# sort the companies by revenue
companies.sort(key=lambda company: company[2])

# show the sorted companies
print(companies)

Output:

[('Apple', 2019, 260.2), ('Google', 2019, 134.81), ('Facebook', 2019, 70.7)]

 

4. Summary

  • Python List sort() 메서드를 사용하여 목록을 제자리에 정렬합니다.
  • sort() 메서드는 문자열 요소를 사전순으로 정렬하고 숫자 요소를 가장 작은 것부터 가장 큰 것까지 정렬합니다.
  • 기본 정렬 순서를 반대로 하려면 sort(reverse=True)를 사용하십시오.

 

 

refreances:https://www.pythontutorial.net/python-basics/python-sort-list/
728x90
반응형

'Programing > Python' 카테고리의 다른 글

Python List Slice 사용하기  (0) 2023.03.07
Python sorted() 사용하기  (0) 2023.03.07
Python Tuples: 튜플 자료형 사용하기  (0) 2023.03.07
Python List/Array: 배열  (0) 2023.03.06
Python Function Docstrings  (0) 2023.03.06

댓글