11/7 콜라 문제
딥러닝을 이용한 자연어처리 입문 공부 중 이중 for문을 한줄로 쓰는 부분이 헷갈려서 한번 포스팅하려 한다..
-
이중 for문 한줄로 쓰기
import pandas as pd # 데이터프레임 사용을 위해 from math import log # IDF 계산을 위해 docs = [ '먹고 싶은 사과', '먹고 싶은 바나나', '길고 노란 바나나 바나나', '저는 과일이 좋아요' ] vocab = list(set(w for doc in docs for w in doc.split())) vocab.sort()
위에서 언급한 부분인데, vocab을 할당한 부분을 보면 이중 for문을 한줄로 써놨다.
이 코드가 하는 일은 docs에 있는 문자열들을 띄어쓰기 기준으로 분리한 후, 중복되지 않게 리스트로 만드는 일이다.
vocab = list(set(w for doc in docs for w in doc.split()))
위 코드를 풀어서 쓰면
docs = [ '먹고 싶은 사과', '먹고 싶은 바나나', '길고 노란 바나나 바나나', '저는 과일이 좋아요' ] vocab = [] for doc in docs : for word in doc.split() : vocab.append(word) vocab = list(set(vocab)) print(vocab)
doc.split()은 리스트 타입이다.
실행 결과
# ['노란', '싶은', '바나나', '먹고', '저는', '과일이', '사과', '길고', '좋아요']
단순히 겹쳐진 for문을 위에서부터 차례대로 한줄로 쓰면 된다.
댓글남기기