728x90
반응형
SMALL

정렬시 key  를 사용하여 원하는 기준으로 정렬할 수 있음

 

1) 절대값으로 정렬

a = [-2, -5, 3, 1, -10]

a.sort(key=abs)
print(a)
a = [-2, -5, 3, 1, -10]

b = sorted(a, key=abs)
print(b)

 - 실행결과

[1, -2, 3, -5, -10]

 

2) lambda 를 사용하여 정렬

a = [-2, -5, 3, 1, -10]

a.sort(key=lambda x: -(x*2))
print(a)
a = [-2, -5, 3, 1, -10]

b = sorted(a,key=lambda x: -(x*2))
print(b)

 

각 값들이 -(x*2) 가 적용되어 [4, 10, -6, -2, 20] 로 되고 다시 오름차순으로 정렬되어 아래와 같이 실행결과가 나타남

 

- 실행결과

[3, 1, -2, -5, -10]

 

3) 사용자 정의 객체 리스트를 속성에 따라 정렬하기

 

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

people = [Person("Alice", 25), Person("Bob", 30), Person("Charlie", 20)]
sorted_people = sorted(people, key=lambda x: x.age)
print([person.name for person in sorted_people])

 

key 매개변수에 lambda 함수를 사용하여 각 요소를 어떻게 비교할지를 정의

 

- 실행결과

['Charlie', 'Alice', 'Bob']

728x90
반응형
LIST
728x90
반응형
SMALL

*** 두 함수 모두 기본으로 오름차순 정렬됨

***  sort(): 자기자신을 정렬, 리스트 함수

***  sorted() 자기자신이 정렬된 결과를 리스트형식으로 반환함(자기자신은 정렬이 안됨, 아래 예제확인), 파이썬 내장함수

 

1) sort, sorted 비교 예제 코드

a = [4,2,5,1,3]

a.sort()

print(a)

- 실행결과

[1, 2, 3, 4, 5]

 

a = [4,2,5,1,3]

b = sorted(a)

print('a=',a)
print('b=',b)

- 실행결과

a= [4, 2, 5, 1, 3]
b= [1, 2, 3, 4, 5]

 

2) 내림차순 정렬

a = [4,2,5,1,3]

b = sorted(a,reverse=True)
a.sort(reverse=True)

print('a= ', a)
print('b= ', b)

- 실행 결과

a=  [5, 4, 3, 2, 1]
b=  [5, 4, 3, 2, 1]

728x90
반응형
LIST

+ Recent posts