강의

멘토링

로드맵

인프런 커뮤니티 질문&답변

정찬희님의 프로필 이미지
정찬희

작성한 질문수

[PyTorch] 쉽고 빠르게 배우는 NLP

[실습] 자연어 처리에 필요한 기본 배경 지식 실습

파이썬 for 문 질문드립니다.

작성

·

257

0

[y for x in vocab_list for y in x]

부분에서 [ y for x in vocb_list ]랑 차이가 무엇인가요?

 

for y in x 부분은 왜 넣은건가요?

 

퀴즈

머신러닝 학습 과정에서 '학습에 사용되지 않는' 데이터를 통해 모델의 최종 성능을 평가하는 데이터셋은 무엇일까요?

학습 데이터셋 (Training dataset)

검증 데이터셋 (Validation dataset)

테스트 데이터셋 (Test dataset)

전처리 데이터셋 (Preprocessing dataset)

답변 1

0

Justin님의 프로필 이미지
Justin
지식공유자

안녕하세요, Justin입니다.

 

[y for x in vocab_list] 로 코드를 실행하시면, vocab_list 의 iterator 내 순환되면서 지정되는 값이 x로 지정되지만, y값을 리스트 내 저장하는 코드이기 때문에 에러가 발생합니다. 올바른 코드는 [x for x in vocab_list] 입니다.

 [y for x in vocab_list for y in x] 코드는 2단계입니다.

1. vocab_list 의 iterator내 순환되면서 지정되는 x값

2. 1번의 x값이 iterator이기 때문에 iterator값 내 순환되면서 지정되는 y값

즉, 이중 반복문을 통해서 중복된 iterator 값 내 1개씩 접근하는 것을 의미합니다.

 

이해를 돕기 위해 1가지의 예시를 들도록 하겠습니다.

2개의 코드는 결과가 같은 코드입니다.

 

1. 

 output = []

for y in z: for x in y: output.append(x)

2.

output = [y for x in y for y in z]

 

감사합니다.

정찬희님의 프로필 이미지
정찬희

작성한 질문수

질문하기