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

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

작성한 질문수

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

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

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

작성

·

174

0

[y for x in vocab_list for y in x]

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

 

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

 

답변 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]

 

감사합니다.

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

작성한 질문수

질문하기