Python

파이썬 List Comprehension (리스트 컴프리헨션 )

cclass 2021. 2. 28. 15:48

# List Comprehension 이란

- 리스트를 짧은 코드로 손쉽게 만들수 있는 문법

 

# 문법

- [expression for element in iterable]

- [expression for element in iterable condition]

 

# 장점 및 단점

- 깔끔하게 간단하게 리스트를 생성할 수 있다.

- 복잡하게 작성시 가독성이 떨어질 수 있다. 

 

# 리스트 컴프리헨션 사용 안했을 때
numbers = []
for i in range(1, 11):
  numbers.append(i)
print(numbers)  
# >>> [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

# 리스트 컴프리헨션 예시
numbers = [i for i in range(1, 11)]
print(numbers)
# >>> [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

# if 조건 
numbers = [i for i in range(1, 11) if i > 5]
print(numbers)
# >>> [6, 7, 8, 9, 10]

# if 중복 작성
numbers = [i for i in range(1, 11) if i % 2 == 0 if i > 5]
print(numbers)
# >>> [6, 8, 10]

# 다중 for 문 (구구단 )
numbers = [ 
	"{} * {} = {} ".format(i, j) + (i * j) for i in range(2, 10) for j in range(1, 10)
]
print(numbers)
# >>> ['2 * 1 = 2', '2 * 2 = 4', '2 * 3 = 6',.....'9 * 7 = 63', '9 * 8 = 72', '9 * 9 = 81']


# 또다른 차이점 
numbers = []
for i in range(1, 11):
    numbers.append(i)

print('i' in vars())
# >>> True

numbers = [j for j in range(1, 11)]
print('j' in vars())
# >>> False