• 카테고리

    질문 & 답변
  • 세부 분야

    자연어 처리

  • 해결 여부

    미해결

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

21.09.23 01:55 작성 조회수 108

0

[y for x in vocab_list for y in x]

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

 

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

 

답변 1

답변을 작성해보세요.

0

안녕하세요, 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]

 

감사합니다.