python

[Python] 오름차순 정렬, 내림차순 정렬

딸기케잌🍓 2021. 3. 28. 23:07

파이썬에서는 내장함수 sort(), sorted()를 이용하여 간단하게 정렬을 수행할 수 있어용

 

sort()

리스트를 정렬하여 변경하고 None을 반환합니다.

복사본을 만들필요가 없으므로 sorted()보다 빠릅니다.

 

sorted()

어떤 이터러블 객체도 받을 수 있습니닷.

새로운 정렬된 목록을 반환하며 원래 목록은 영향을 받지 않습니다..

 

 

 

 

sort()함수

오름차순 정렬

numbers = [2, 1, 3, 4, 1]
numbers.sort()
print(numbers)

결과
[1, 1, 2, 3, 4]

 

내림차순 정렬

numbers = [2, 1, 3, 4, 1]
numbers.sort(reverse=True)
print(numbers)

결과
[4, 3, 2, 1, 1]

 

 

 

sorted() 함수

오름차순 정렬

numbers = [2, 1, 3, 4, 1]
print(sorted(numbers))

결과
[1, 1, 2, 3, 4]

 

내림차순 정렬

numbers = [2, 1, 3, 4, 1]
print(sorted(numbers,reverse=True))

결과
[4, 3, 2, 1, 1]

 

key 매개변수 이용

sorted()함수는 key 매개변수를 이용하여 조금 더 정교한 정렬을 제공한다!!

key 인자에 함수를 넘겨주면 해당 함수의 반환값을 비교하며 순서대로 정렬합니당.

 

예시1)

sorted(numbers, key=lambda x:x[0])

tuples = [(6,0), (9,5), (10,4), (2,7), (5,2)]
print(sorted(tuples,key = lambda x : x[0]))

결과
[(2, 7), (5, 2), (6, 0), (9, 5), (10, 4)]

리스트의 원소로 튜플이 있고 튜플의 첫번째 값 x[0]으로 오름차순 정렬합니다.

 

 

예시2)

sorted(numbers, key=lambda x:(x[0], -x[1]))

튜플의 첫번째값으로는 오름차순, 두번째 값으로는 내림차순 정렬을 해보겠습니당

tuples = [(6,0), (6,5), (10,4), (2,7), (6,2)]
print(sorted(tuples,key = lambda x : (x[0],-x[1])))

결과
[(2, 7), (6, 5), (6, 2), (6, 0), (10, 4)]

 

예시3)

students 자료형에서 두번째 값 오름차순, 세번째 값 내림차순 정렬입니다.

students = [
        ('홍길동', 3.9, 20210325),
        ('김철수', 3.0, 20210205),
        ('최자영', 4.3, 20210125),
        ('개똥이', 4.3, 20210120),
    ]

print(sorted(students, key=lambda students : (students[1],-students[2])))

결과
[('김철수', 3.0, 20210205), ('홍길동', 3.9, 20210325), ('최자영', 4.3, 20210125), ('개똥이', 4.3, 20210120)]

 

'python' 카테고리의 다른 글

[Python] 순열, 조합  (0) 2021.04.06
[Python] zip 함수  (0) 2021.04.01
join과 split  (0) 2020.06.29
[Python] enumerate  (0) 2020.06.29
[Python] for문 index로 접근  (0) 2020.05.28