btstudy.com 으로 오세요. 수능/내신 변형, 퀴즈를 무료로 공개합니다.

블루티쳐학원 | 등록번호: 762-94-00693 | 중고등 영어 | 수강료: 30(중등), 33(고등), 3+4(특강)

THE BLUET

728x90
반응형

안녕하세요? 영어하는 초보코더 임희재입니다.

 

오늘은 문장에 점수를 부여하고, 점수를 이용해 정렬하는 방법을 알아보겠습니다.

 

리스트의 모습은

 

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)으로 정렬하길 원하면 지우면 됩니다.

 

 

이상 초보코더의 팁이었습니다!!

 

좋아요 부탁해요~~

 

 

728x90
반응형