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

vpdtlrdl님의 프로필 이미지
vpdtlrdl

작성한 질문수

우리를 위한 프로그래밍 : 파이썬 중급 (Inflearn Original)

매직 메소드(3-3)

리스트 컴프리헨션에 관한 질문입니다

작성

·

134

0

강의에서 

Classes = namedtuple('Classes', ['rank''number'])

다음과 같이 네임드 튜플을 선언하고, 

numbers = [str(nfor n in range(121)]
ranks = 'A B C D'.split()

이렇게 그룹 리스트를 선언한 후 

students = [Classes(ranknumberfor rank in ranks for number in numbers]

리스트 컴프리헨션을 사용하셨는데요,  [](대괄호) 내부에서의 반복문을 사용함으로써 

Classes(A, 1)부터 시작되는 객체를 생성하는 과정이라고 이해하면 되는건가요?

그리고 리스트 컴프리헨션을 사용한 이유는  오직 반복문을 사용하기 위함인건지 궁금합니다..

+ 또 궁금한게 있습니다...

students2 = [Classes(ranknumber)
            for rank in 'A B C D'.split()
                for number in [str(n)
                    for n in range(121)]]

다음과 같이 코드를 작성하셨는데요, for문을 중첩 for 반복문과 비슷하게 작성하셨는데 리스트 컴프리헨션에서는 for이 한 줄로 작성되지 않아도 무방한 것인지 궁금합니다!! 

질문이 너무 많은 것 같네요... 강의 잘 듣고 있습니다 감사합니다 ㅎㅎ

답변 1

0

좋은사람님의 프로필 이미지
좋은사람
지식공유자

네 생성 과정이맞습니다.

보통 중첩 for 문을 리스트 컴프리핸션으로 작성해도 결과의 차이는 없습니다.

경우에 따라 for문으로 나열해서 쓰는게 가독성은 더 좋을 것 같아여.

vpdtlrdl님의 프로필 이미지
vpdtlrdl

작성한 질문수

질문하기