작성
·
174
답변 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]
감사합니다.