답변을 정리하고 일부를 보여줄 것이라고 생각했습니다. timeit
결과를 .
파이썬 2는 이것에 꽤 나쁘지만 map
이해력보다 약간 빠릅니다.
Python 2.7.13 (v2.7.13:a06454b1afa1, Dec 17 2016, 20:42:59) [MSC v.1500 32 bit (Intel)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> import timeit
>>> setup = """import random
random.seed(10)
l = [str(random.randint(0, 99)) for i in range(100)]"""
>>> timeit.timeit('[int(v) for v in l]', setup)
116.25092001434314
>>> timeit.timeit('map(int, l)', setup)
106.66044823117454
파이썬 3 자체는 4 배 이상 빠르지 만 map
생성기 객체를 목록으로 변환하는 것이 여전히 이해력보다 빠르며 map
생성기 를 풀고 (Artem! 덕분에) 목록을 생성하여 목록을 생성하는 것이 약간 더 빠릅니다.
Python 3.6.1 (v3.6.1:69c0db5, Mar 21 2017, 17:54:52) [MSC v.1900 32 bit (Intel)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> import timeit
>>> setup = """import random
random.seed(10)
l = [str(random.randint(0, 99)) for i in range(100)]"""
>>> timeit.timeit('[int(v) for v in l]', setup)
25.133059591551955
>>> timeit.timeit('list(map(int, l))', setup)
19.705547827217515
>>> timeit.timeit('[*map(int, l)]', setup)
19.45838406513076
참고 : 파이썬 3에서 4 요소는 이해력이 약간 더 빠르지 만 교차 요소 (파이썬 2에서는 3) 인 것처럼 보입니다. 생성자를 풀면 여전히 요소가 2 개 이상인 목록의 경우보다 빠릅니다.