List나 dictionary를 이미 존재하는 iterable object를 사용하여 생성하는 방식

List Comprehension

my_list = [1, 2, 3, 4, 5]
new_list = [x * 10 for x in my_list] # [10, 20, 30, 40, 50]

Dictionary Comprehension

my_str_list = ["a", "ab", "abc"]
new_dict = {x: len(x) for x in my_str_list} # {"a": 1, "b": 2, "c": 3}

Time Comparison

Comprehension을 사용하는 이유는, 코드의 간결성 뿐만 아니라, 성능 면에서도 조금 더 빠른 모습을 보인다.

(append를 실행 함에 있어 시간이 걸리기 때문)

import time
start = time.time()
new_list = []

for x in range(0, 90000000):
	new_list.append(x * 2)
end = time.time()
print(f"Time take is {end - start} seconds")

# Time take is 10.11 seconds

start = time.time()
new_list = [element * 2 for element in range(0, 90000000)]
end = time.time()
print(f"Time take is {end - start} seconds")

# Time take is 5.49