Python

[Python] list comprehension

잘할수있을거야 2022. 1. 20. 12:51

간결한 문법으로 리스트를 생성할 수 있는 것 같다.

 

 

1. 0~9 값 리스트에 추가하여 리스트 생성

 

for문 사용시

li = []
for item in range(10):
    li.append(item)
print(li)

 

list comprehension 사용시

li = [item for item in range(10)]
print(li)


list comprehension에 for if 를 섞어서 사용가능

 

0~9 값중 짝수만 리스트에 추가하여 리스트 생성

 

for+if문 사용

li = []

for item in range(10):
    if item % 2 == 0:
        li.append(item)
    
print(li)

 

list comprehension 사용

li = [item for item in range(10) if item % 2 == 0]
print(li)


위의 코드에서 li= [item for........ if......]의 item 부분은 값이 아닌 expression이 평가될 수 있는 부분이다. 

expression에 list comprehension이 들어간 중첩 list comprehension

 

matrix = [[1, 2, 3, 4],
          [5, 6, 7, 8],
          [9, 10, 11, 12]]

print([[row[i] for row in matrix] for i in range(4)])