파이썬 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 |
---|
영어강사의 왕초보 코딩강좌1 (서브라임텍스트, 정규식Regex)
안녕하세요?
코딩, 아직 저도 배우는 중이지만 (그리고 많이 발전해야하지만)
초보가 하는 말은 초보자에게 더 쉽게 이해가 되더라고요 ^^
긴 설명 좋아하지 않아서, 바로 들어갑니다.
코딩을 배우시려면, 먼저 '뭘 하고 싶다'는 발상을 하셔야 해요.
개인적으론, "찾아 바꾸기"를 쉽게 하려고 코딩에 입문했어요.
Sentence: I love you. I like you.
Find1: love
Replace1: see
Find2: like
Replace2: see
'이걸 동시에 할 수 있는 방법이 없을까?'
이 발상이 시작점이었습니다.
Here is Recipe.
1. 서브라임텍스트를 다운로드 하세요. (모든 코딩을 진행할 무료프로그램)
2. 정규식이 무엇인지 조금 아실 필요가 있어요. Regular Expression
급한 성격탓에 바로 예시 들어갑니다.
1. 이렇게 입력해보세요.
2. 좌측 하단에 .* 이 버튼 꼭 누르셔야 합니다. (Regex 사용가능하게함)
3. Command+Shift+F (Mac) 을 누르시고,
Find창에 love|like|know(바꿀말들) (엔터위의 | 구분자입니다)
Replace창에 see(바꾸고 싶은 말) 입력후
4. Replace 버튼 누르시고, 바꾸세요~!!
5. 짜잔~~그럼 이렇게 바뀝니다.
호기심으로 시작하는 코딩 입니다.
앞으로 파이썬, 자바스크립트, CSS, HTML에 관해서 지속적으로 글을 쓰려고 합니다.
많은 응원과 추천 부탁합니다..
다음 시간엔, 정규식으로 5가지 프로젝트를 진행해 보겠습니다.!!!
빠이~~
'코딩강좌' 카테고리의 다른 글
파이썬 Lambda를 이용한 Sort 방법 [왕초보도가능] (0) | 2019.04.18 |
---|