sort는 여러 가지 순서를 지원하는 경우에는 사용할 수 없다.
key함수
class Tool:
def __init__(self, name, weight):
self.name =name
self.weight = weight
def __reor__(self):
return f'Tool({self.name!r}, {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)
print('\n정렬:', tools)
#미정렬: [Tool('수준계',3.5),Tool('해머',1.25), Tool('스크류드라이버', 0.5), Tool('끌', 0.25)]
#정렬: [Tool('끌',0.25),Tool('수준계',3.5), Tool('스크류드라이버', 0.5), Tool('해머', 1.25)]
power_tools = [
Tool('드릴', 4),
Tool('원형 톱', 5),
Tool('착암기', 40),
Tool('연마기', 4),
]
power_tools.sort(key=lambda x: x.name) #name기준 오름차순
power_tools.sort(key=lambda x: x.weight, reverse = True) #weigjt기준 내림차순
print(power_tools)
#[Tool('적암기 ', 40), Tool('원형 ', 5), Tool( '드릴', 4), Tool(' 연마' , 4)]