<이것이 취업을 위한 코딩테스트이다, 359p, 나동빈, 한빛미디어>
- 잘못된 코드
data = [['aaa', 20, 54, 75], ['bbb', 88, 64, 21], ['ccc', 55, 66, 45]] korean = [] for i in range(len(data)): korean = sorted(data, key=lambda data, i: data[i][1]) print(korean)
lambda 함수를 인식하지 못한다.
- 람다의 활용
lambda x: (-int(x[1]), int(x[2]), -int(x[3]), x[0])
이런식으로 리스트 내부의 튜플 데이터를 조작한 후 key값으로 사용할 수 있다.
# 학생의 수 입력
N = int(input("N >> "))
# 학생의 이름과 점수 데이터 입력, 리스트 안에 튜플로 저장
data = []
for i in range(N):
data.append(input("data >> ").split())
data.sort(key=lambda x: (-int(x[1]), int(x[2]), -int(x[3]), x[0]))
print(data)