앞서 나왔지만 리스트 이해(List Comprehension)는 무엇일까? 단어 자체의 뜻과 직접적인 관계가 없어 보이지만 리스트의 이해는 기존 리스트를 변경해 새로운 리스트를 만드는 것이다. 리스트에 숫자 3을 곱하면 리스트가 3배로 복제되어 늘어났지 리스트의 아이템이 3배씩 바뀌는 건 아니였다.
리스트의 아이템에 모두 3을 곱하고 싶다면 리스트의 이해를 사용해야 한다.
리스트 이해 (List Comprehension)
리스트 이해의 기본구조
new_list=[operationforiteminlist]
기본적으로 리스트의 이해는 기존 리스트에서 각 아이템에 대해 어떠한 조작(operation)을 통해 새로운 리스트를 만든다는 것이다. for는 뒤에 나올 반복문에서도 배우겠지만 특정 횟수만큼 반복하기 위한 파이썬 루프(Loop)의 한 방법이다. 여기서는 기존 리스트에서 아이템이 끝날 때까지 아이템을 하나씩 꺼내는 역할을 한다. item은 기존 리스트의 요소를 나타내는 변수로 item이든 element든 머라고 이름을 붙여도 좋다.
그럼, 몇 가지 연습을 통해 리스트 이해에 대한 감을 잡아보자.
오퍼레이션 부분에 아이템 값을 그대로 적으면 아이템 그대로 새로운 리스트가 만들어지고, 숫자를 넣으면 뒤에 머가 오든 숫자로 이뤄진 새로운 리스트가 만들어진다.
오퍼레이션 부분에 기존 아이템을 그대로 적은 경우
오퍼레이션 부분에 숫자를 넣은 경우
리스트가 문자열로 이뤄져 있다면 문자열 인덱스를 이용해 기존 리스트의 첫 글자만 따서 새로운 리스트를 만들 수 있다.
아이템의 첫 글자만 따서 새로운 리스트 만들기
또한, len( ) 함수를 사용해 글자수가 5개 이하인 행성들만 이뤄진 리스트를 만들어 보자.
글자수가 5개 이하인 아이템 적기
오퍼레이션 부분에 비교 연산자를 사용하면 불린형 데이터로 이뤄진 새로운 리스트가 만들어 질 것이다.
바로 뒤에 나올 반복문과 조건문을 공부하면서 비교하겠지만 리스트의 이해는 한 줄의 코드로 새로운 리스트를 간단하게 만들 수 있는 방법이다.