본문 바로가기
etc/Python

[Python] - 지능형리스트(List Comprehension)로 리스트 만들기

by saltyzun 2020. 11. 15.

지능형리스트(List Comprehension)란?

생경한 이름과는 달리 지능형리스트는 단지 리스트를 만들 뿐이다. 튜플과 같은 다른 종류의 시퀀스를 만들려면 제너레이터 표현식을 사용해야 한다. 

 


지능형리스트(List Comprehension)를 이용하여 리스트 생성하기

List Comprehension을 이용하는 방법은 정말 간단하다. 아래와 같은 코드를 작성하여 간단하게 리스트를 생성할 수 있다.

# 지능형리스트를 사용해 리스트를 만드는 경우
characters = 'abcdefghijk'
clist = [char for char in characters]
clist

Python에서 위의 코드를 실행했을 때의 결과는 아래와 같다.

 

>>> ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k']

이는 아래와 같이 우리가 기존에 해오던 방식보다 훨씬 간결하고 읽기 쉬운 방식으로 리스트를 만들 수 있게 해준다.

# 지능형리스트를 사용하지 않고 리스트를 만드는 경우
characters = 'abcdefghijk'
clist = []
for char in characters:
    clist.append(char)
    
clist

 


지능형리스트를 이용한 데카르트 곱

데카르트 곱이란 두개 이상의 리스트에 있는 모든 항목을 이용해서 만든 튜플로 구성된 리스트를 의미한다. 다시 말해, 각각 m개와 n개의 항목을 가진 리스트로부터 m*n 개의 튜플을 항목으로 가지는 리스트를 만드는 것이다.

 

List comprehension을 이용하면 아래와 같이 데카르트 곱을 만들 수 있다.

# 지능형리스트를 이용하여 데카르트 곱 만들기
colors = ['black','white']
sizes = ['S','M','L']
tshirts = [(color, size) for color in colors for size in sizes]
tshirts

>>> [('black', 'S'),
 ('black', 'M'),
 ('black', 'L'),
 ('white', 'S'),
 ('white', 'M'),
 ('white', 'L')]

 

반응형

댓글