list comprehension

백승찬·2020년 10월 25일
0

python

목록 보기
3/10

list comprehension

새로운 리스트를 만들 때 사용할 수 있는 간단한 표현식

[ 표현식 for 원소 in 반복 가는한 객체]
[ 표현식 for 원소 in 반복 가능한 객체 if문 ]

간단한 ex)

new_list = [x for x in range(1, 11)]
print(new_list)

결과 : [1,2,3,4,5,6,77,8,9,10,11]

if문을 포함한 경우

간단한 ex)

odd_numbers = []
for element  in range(1,11):
	if (element % 2) == 1:
    odd_numbers.append(element)

이와같은 조건문을 포함한 리스트를 컴프리헨션으로 표현하면

list_comprehension = [ element for element in range(1,11) if (element % 2) == 1]
print(list_comprehension)

이처럼 간단히 표현 가능

timteit 모듈을 사용하여 함수들을 1000번 실행한 시간을 측정하는 코드

import timeit

def for_loop():
num_list = []
for i in range(1000):
num_list.append(i)

def list_comprehension():
num_list = [ i for i in range(1000) ]

if __name__ == "__main__":
time1 = timeit.Timer("for_loop()", "from __main__ import for_loop")
print("for loop time = ", time1.timeit(number=1000), "milliseconds")

time2 = timeit.Timer("list_comprehension()", "from __main__ import list_comprehension")
print("list_comprehension time = ", time2.timeit(number=1000), "milliseconds")

실행 결과

for loop time = 0.062743696 milliseconds
list_comprehension time = 0.024242144999 milliseconds

코드를 간결하게 하는 것은 물론이고 데이터 베이스를 조회하여 리스트로 만들 때 사용되므로 리스트 컴프리 헨션은 새로운 배열을 만들 때 특히 유용

0개의 댓글