[python] 리스트를 크기에 따라 정렬하기

Hello World·2024년 9월 27일

PythonNotebook

목록 보기
4/13
post-thumbnail
  • 정렬(sorting)이란 리스트 안의 항목들을 크기 순으로 나열하는 것이다.

sort(*, key=None, reverse=False)

numbers = [9, 6, 7, 1, 8, 4, 5, 3, 2]
numbers.sort()  # numbers 리스트를 크기 순으로 정렬하는 메서드

print(numbers)
# [1, 2, 3, 4, 5, 6, 7, 8, 9]
  • 기본정렬 방식은 오름차순이다.
  • 만일 내림차순 정렬을 원한다면 다음과 같이 reverse 인자를 줄 수 있다.
numbers = [9, 6, 7, 1, 8, 4, 5, 3, 2]
numbers.sort(reverse=True)  # numbers 리스트를 역순으로 정렬하는 메서드

print(numbers)
# [9, 8, 7, 6, 5, 4, 3, 2, 1]

sorted(*, key=None, reverse=False)

  • 만일 새로운 리스트가 필요하면 다음과 같이 내장함수 sorted() 함수를 사용하여야 한다.
fruits = ['Orange', 'Apple', 'Melon', 'Watermelon', 'Banana', 'Tomato']
new_fruits = sorted(fruits)  # fruits 리스트 정렬

print(new_fruits)
print(fruits)
# ['Apple', 'Banana', 'Melon', 'Orange', 'Tomato', 'Watermelon']
# ['Orange', 'Apple', 'Melon', 'Watermelon', 'Banana', 'Tomato']
  • 만약 리스트를 역으로 정렬하고 싶으면 sorted() 함수를 호출할 때, reverse=True 사용한다.
fruits = ['Orange', 'Apple', 'Melon', 'Watermelon', 'Banana', 'Tomato']
new_fruits = sorted(fruits, reverse=True)

print(new_fruits)
# ['Watermelon', 'Tomato', 'Orange', 'Melon', 'Banana', 'Apple']
  • 정렬 조건을 설정할 함수를 넣을 수 있다. 물론 lambda 함수도 가능합니다.
fruits = ['Orange', 'Apple', 'Melon', 'Watermelon', 'Banana', 'Tomato']
new_fruits = sorted(fruits, key=len)  # 글자 수를 기준으로 정렬

print(new_fruits)
# ['Apple', 'Melon', 'Orange', 'Banana', 'Tomato', 'Watermelon']
city_info = [('서울', 9765), ('부산', 3441), ('인천', 2954), ('광주', 1501), ('대전', 1531)]
new_city = sorted(city_info, key=lambda x: x[1], reverse=True)  # 람다식 사용

print(new_city)
# [('서울', 9765), ('부산', 3441), ('인천', 2954), ('대전', 1531), ('광주', 1501)]

0개의 댓글