파이썬 반복문 질문입니다. 살짝 헷갈리는 개념이네요

조회수 824회

안녕하세요.

다음의 파이썬 코드에 대하여 질문이 있습니다. 제가 질문드릴 내용은 파이썬 반복문에서 이러한 구조를 가진 코드에 대한 질문인데요

a = [i for i in features if i != alphabet]

위의 반복문 코드에서, for i in features if i != alphabet 이라는 구문은 이해가 갑니다.

하지만, 맨 앞에 붙어있는 i는 무엇을 위한 것인가요?

잘 이해가 가지 않습니다.

  • 위 반복문에서 i는 리스트 안에 추가할 변수 하나하나를 의미합니다. 그리고 for 이하는 "내가 리스트 안에 i를 추가할건데 그 i가 어떤 값이냐면..."에 대한 설명이라고 생각하시면 됩니다. `for i in ...`에서 i가 매 iteration에서 새로 정의되는 값이므로, 그 값 하나하나를 리스트에 넣는 것입니다. HIAOAIH 2020.10.19 10:36

1 답변

  • a = [i for i in features if i != alphabet]
    

    위 코드는 다음과 같이 번역됩니다.

    1. features를 이루는 구성요소 하나하나를 i라고 했을 때
    2. i != alphabet일 경우
    3. i를 구하여
    4. 그 구한 것들을 목록으로서 a에 할당하라.

    위 번역의 제3단계를 i*2를 구하도록 바꾸면 이렇게 됩니다.

    a = [i*2 for i in features if i != alphabet]
    

    끝으로… 왜 하필 i냐? 반복자를 영어로 iterator라고 하기 때문에 그 첫글자를 따서 i입니다. 거의 대부분의 언어의 거의 대부분의 반복문이 전형적으로 i를 쓰는건 그냥 그런 이유입니다.

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)