반응형

 

 

 

sort vs sorted

sort()는 one dimensional list에서 많이 쓰이고,

sorted()는 여러 차원이나 조건들을 설정할 때 많이 쓰인다.

 

sort()

오름차순

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

 

내림차순

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

 

 

 

 

sorted()

>>> students = [
        ('홍길동', 3.9, 2016303),
        ('김철수', 3.0, 2016302),
        ('최자영', 4.3, 2016301),
]

 

오름차순(세 번째 값을 기준으로)

>>> sorted(students, key=lambda student: student[2])
[('최자영', 4.3, 2016301), ('김철수', 3.0, 2016302), ('홍길동', 3.9, 2016303)]

 

내림차순

>>> sorted(students, key=lambda student: -student[2])
[('홍길동', 3.9, 2016303), ('김철수', 3.0, 2016302), ('최자영', 4.3, 2016301)]

 

 

 

 

만약 세 번째 값은 오름차순, 두 번째 값은 내림차순으로 정렬하고 싶다면?

>>> sorted(students, key=lambda student: (student[2],-student[1]))
[('최자영', 4.3, 2016301), ('김철수', 3.0, 2016302), ('홍길동', 3.9, 2016303)]

 

 

 

반응형

+ Recent posts