Python - 리스트 정렬

안녕하세요, 더 나은 프로그래머가 되고자 하는 여러분! 오늘은 Python에서 리스트를 정렬하는 아름다운 세계에 빠지러 갈 거예요. 친절한 이웃 컴퓨터 교사로서, 여러분을 이 여정을 안내하는 것을 기대하고 있어요. 그래서, 좋아하는 음료를 준비하고 편하게 앉아서, 함께 이 정렬 모험에 떠나보죠!

Python - Sort Lists

Python에서 리스트 정렬

정렬의 세부 사항에 뛰어들기 전에, Python에서 리스트는 무엇인지 이해하는 시간을 취할까요? 여러분이 다양한 이름이 적힌 스티키 노트가 많은 것을 상상해보세요. Python에서는 리스트는 이러한 스티키 노트의 모음과 비슷해요, 여기서 각 노트는 리스트의 한 항목입니다.

정렬은 이러한 스티키 노트를 특정 순서로 배열하는 것과 같아요. 알파벳 순서, 숫자 순서, 또는 우리가 정의한 다른 순서일 수 있어요. Python는 이러한 정렬을 빠르고 효율적으로 할 수 있게 해주는 멋진 도구를 제공합니다.

왜 정렬합니까?

여러분이 "왜 우리가 리스트를 정렬해야 하나요?"라고 궁금할 수도 있죠. 그럼, 작은 이야기를 하나 들려드릴게요. 어느 날, 나는 한 학생을 사귀었는데, 그는 액션 피규어를 수집하는 것을 좋아했어요. 그는 그것들을 수많이 가지고 있었지만, 그 중 하나를 찾을 수 없었던 건 모두 혼란스러워서였죠. 어느 날, 그는 그것들을 문자 이름으로 알파벳 순서로 정렬하기로 결심했어요. 갑자기, 어떤 피규어를 찾는 것도 손쉽게 되었어요! 그것이 정렬의 힘입니다 - 우리에게 더 쉽게 조직하고 찾는 것을 도와줍니다.

프로그래밍에서는 정렬된 데이터가 우리의 코드를 더 효율적으로 만들어주는데, 특히 특정 항목을 검색하거나 정보를 구조화된 방식으로 제시할 때尤끼요.

sort() 메서드를 사용하여 리스트 정렬

Python에서 리스트를 정렬하는 가장 간단한 방법으로 sort() 메서드를 시작해보죠. 이 메서드는 여러분의 리스트의 항목을 오름차순으로 재배열하는 마법의 주문과 같아요.

여기 간단한 예제가 있어요:

fruits = ["banana", "apple", "cherry", "date"]
fruits.sort()
print(fruits)

출력:

['apple', 'banana', 'cherry', 'date']

이게 무슨 일이 일어났나요? sort() 메서드는 우리의 과일을 알파벳 순서로 배열했어요. 그것은 친구들을 사진을 찍을 때, 가장 짧은 사람부터 가장 키 큰 사람으로 줄을 세우는 것과 같아요!

역순으로 정렬

하지만 우리가 내림차순으로 정렬하고 싶다면? 문제 없어요! 우리의 정렬 주문에 약간의 트위스트를 추가할 수 있어요:

numbers = [5, 2, 8, 1, 9]
numbers.sort(reverse=True)
print(numbers)

출력:

[9, 8, 5, 2, 1]

reverse=True를 추가하면, 우리는 Python에 숫자를 가장 큰 것부터 가장 작은 것으로 정렬하도록 말했어요. 그것은 로켓 발사를 위해 내려가는 카운트와 같아요!

sorted() 함수를 사용하여 리스트 정렬

이제 다른 강력한 도구를 소개할게요: sorted() 함수입니다. sort()는 원래의 리스트를 변경하지만, sorted()는 새로운 정렬된 리스트를 만들어 냅니다. 원래의 것은 건드리지 않아요. 그것은 문서를 복사하고 그것들을 순서대로 배열하는 복사기와 같아요!

이렇게 동작합니다:

colors = ["red", "blue", "green", "yellow"]
sorted_colors = sorted(colors)
print("Original list:", colors)
print("Sorted list:", sorted_colors)

출력:

Original list: ['red', 'blue', 'green', 'yellow']
Sorted list: ['blue', 'green', 'red', 'yellow']

원래의 colors 리스트가 변경되지 않았는지 보세요? 그것이 sorted()의 아름다움입니다 - 파괴하지 않는 것입니다.

콜백 함수를 사용하여 리스트 항목 정렬

이제 우리의 정렬 게임을 콜백 함수로 한 단계 업합니다. 이들은 정렬 주문에 특별한 지시를 주는 것과 같아요.

여러분이 책 제목의 길이로 정렬하고 싶은 책의 리스트가 있다고 상상해보세요. 이렇게 할 수 있어요:

books = ["Harry Potter", "The Hobbit", "Pride and Prejudice", "To Kill a Mockingbird"]

def title_length(book):
return len(book)

sorted_books = sorted(books, key=title_length)
print(sorted_books)

출력:

['The Hobbit', 'Harry Potter', 'Pride and Prejudice', 'To Kill a Mockingbird']

이게 무슨 일이 일어나고 있나요? 우리는 책 제목의 길이를 반환하는 title_length 함수를 만들었어요. 그런 다음, sorted()에게 이 함수를 정렬 키로 사용하도록 말했어요. 그것은 친구들에게 이름의 길이에 따라 줄을 세우도록 말하는 것과 같아요!

딕셔너리 정렬

그럼 한 단계 더 올려볼까요? 우리가 딕셔너리의 리스트가 있다면? 걱정하지 마세요, Python이 우리를 보호하고 있어요:

students = [
{"name": "Alice", "grade": 85},
{"name": "Bob", "grade": 92},
{"name": "Charlie", "grade": 78}
]

sorted_students = sorted(students, key=lambda x: x["grade"], reverse=True)
print(sorted_students)

출력:

[{'name': 'Bob', 'grade': 92}, {'name': 'Alice', 'grade': 85}, {'name': 'Charlie', 'grade': 78}]

여기서는 각 딕셔너리의 'grade' 키를 기준으로 정렬하도록 람다 함수(迷你 함수)를 사용하고 있어요. 그것은 보고서 카드를 점수에 따라 정렬하는 것과 같아요!

정렬 메서드 요약

이제 우리는 배운 정렬 메서드를 요약하는 편리한 표로 끝맺을게요:

메서드 설명 원본 리스트를 수정? 역순 정렬 가능? 사용자 정의 키 가능?
sort() 리스트 메서드
sorted() 내장 함수 아니요 (새로운 리스트 생성)

기억하죠, 정렬은 프로그래밍에서 슈퍼파워와 같아요. 데이터를 조직하고, 프로그램을 더 효율적이고 쉽게 작업할 수 있게 해줍니다. 이 기술을 연습하면, 곧 프로처럼 리스트를 정렬할 수 있을 거예요!

우리의 정렬 모험을 마칠 때, 이 여정이 정보가 있고 즐거운 것이 되었기를 바랍니다. 프로그래밍에서는, 때로는 더清晰地 보기 위해 일을 정리해야 한다는 것을 기억하세요. 계속 코딩하고, 배우고, 가장 중요한 것은 Python을 즐기세요!

Credits: Image by storyset