본문 바로가기
Programming/Python

[Python] 리스트 내포 (List comprehension)

by EunjiBest 2022. 3. 2.

리스트 내포  (List comprehension)

 

리스트 안에 for문을 포한하는

리스트 내포(List comprehension)을 사용할 수 있다.

 

a리스트의 각 항목에 3을 곱한 결과를 result 리스트에 담는 예제를

보도록하겠다.

 

>>> a = [1,2,3,4]
>>> result = []
>>> for num in a:
>>>  result.append(num*3)

>>> print(result)

[3,6,9,12]

 

a리스트에는 1,2,3,4라는 숫자가 있고,

result라는 빈 리스트를 만들어줬다.

 

a리스트를 for문에 넣어서, 

1,2,3,4가 차례대로 3과 곱해져

reulst리스트에 추가되는 함수이다.

 

 

위에서는 for문을 사용하기 위해서 2줄의 코드를 쳐야하는데

리스트 내포를 사용한다면, 단 1줄로 간단히 해결할 수 있다.

 

[표현식 for 항목 in 반복 가능 객체 ]

위와 같은 문법대로 사용하면 간단히 해결가능하다.

 

>>> a = [1,2,3,4]
>>> result = [num * 3 for num in a]
>>> print(result)

[3,6,9,12]

 

리스트 안에 표현식 num*3이 앞으로 왔고 뒤에 for문이 붙는것을 볼 수 있다.

 

좀 더 심화해서 for문과 if문을 함께 넣는 것도 가능하다.

 

 

[표현식 for 항목 in 반복 가능 객체 if 조건]

 

뒤에 if문만 붙여주면된다.

 

a = [1,2,3,4]
result = [num * 3 for num in a if num % 2 == 0 ]

이런식으로 짝수에만 3을 곱해서 result에 담을 수 있는 조건을 붙일 수 있다.

 

 

마지막으로 

for문을 2개 이상 사용하는 것도 가능하다.

 

[표현식 for 항목1 in 반복 가능 객체1 if 조건1
          for 항목1 in 반복 가능 객체1 if 조건2
          . . . 
          for 항목1 in 반복 가능 객체1 if 조건n]

 

간단한 예를 들자면,

 

result = [x*y for x in range(2,10) for y in range(1,10)]
print(result)

 

2~9를 x라 두고, 1~9를 y라 해서 for문을 돌려

구구단의 모든 결과를 리스트에 담을 수 있다.

 

 

 

 

 

 

 

 

 

 

 

 

 

반응형

댓글