파이썬 Lambda를 이용한 Sort 방법 [왕초보도가능]
안녕하세요? 영어하는 초보코더 임희재입니다.
오늘은 문장에 점수를 부여하고, 점수를 이용해 정렬하는 방법을 알아보겠습니다.
리스트의 모습은
a = [("I am a boy.",3),("You are a girl.",1),("We are people.",10)]
이렇게 생겼습니다.
문장에 고유한 점수를 부여하여 우선으로 공부해야 하는 문장을 추출하는 것이 목표입니다.
저는 개인적으로 엄청난 삽질ㅋ을 통해서 결국 진리와 같은 이 방법까지 오게 되었네요.
기존에 사용하던 방법은
3 I am a boy. 1 You are a girl. 10 We are people.
이렇게 입력하고, 문장 앞의 숫자처럼 보이지만 str인 값을 이용해서 정렬해주는 방법을 사용했습니다.
*However, 심각한 문제가 있으니
문자로 인식하는 순간 1은 1끼리 정렬하게 됩니다.
즉 1점 문장뒤에 3점이 아닌 10점이..... (중략.. -__-)
Here is Recipe!
a.sort(key=lambda item: item[1],reverse=True)
print(a)
제가 대략 이해한 바로는, lambda를 이용하면
("A",B)
A와 B값으로 분류가 가능합니다.
즉, A=item[0], B=item[1] 이 되는 것이지요.
그래서 item, 즉 어떤 항목을 기준값으로 할 것이냐에서 item[1]을 이용하면 문장이 아닌 점수를 이용해서 정렬할 수 있게 됩니다.
마지막으로 reverse=True는 내림차순시(10->1)에 사용하는 것이고, 오름차순(1->10)으로 정렬하길 원하면 지우면 됩니다.
이상 초보코더의 팁이었습니다!!
좋아요 부탁해요~~
'코딩강좌' 카테고리의 다른 글
영어강사의 왕초보 코딩강좌1 (서브라임텍스트, 정규식Regex) (0) | 2019.04.17 |
---|