복잡한 기준을 사용해 정렬할 때는 key 파라미터를 사용하라#14

key는 함수여야 한다.

ex1)
class Tool:
    def __init__(self,name,weight):
        self.name = name
        self.weight = weight
    def __repr__(self):  #repr 함수는 어떤 객체의 ‘출력될 수 있는 표현’(printable representation)을 문자열의 형태로 반환한다.
        return f'Tool({self.name}, {self.weight})'
tools = [
    Tool('수준계',3.5),
    Tool('해머',1.25),
    Tool('스크류드라이버',0.5),
    Tool('끝',0.25),]
print('미정렬:',repr(tools))
tools.sort(key=lambda x: x.name) #key 속성 값에는 반드시 함수가 들어가야 한다. name을 기입하면 알파벳 오름차순, weight를 기입하면 숫자 오름차순
print('\n정렬:',tools)

:)lambda 는 일회성이고 필요할 때만 호출하여 사용하는 방식으로 메모리상의 불필요한 연산을 줄인다.

:)f1,f2 도 이용가능

ex2)
places = ['home','work','New York','Paris']
places.sort()
print('대소문자 구분:',places)
places.sort(key=lambda x:x.lower())
print('대소문자 무시:',places)

대소문자 구분: ['New York', 'Paris', 'home', 'work']
대소문자 무시: ['home', 'New York', 'Paris', 'work']

:)lower 메소를 사용해 소문자로 변환하여 첫 글자가 대문자든 소문자든 상관하지 않고 알파벳 내림차순



좋은 웹페이지 즐겨찾기