Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python - 목록을 초기화하는 데 어느 것이 더 빠릅니까?

<시간/>

Python은 단일 작업을 여러 가지 방법으로 수행할 수 있는 매우 유연한 언어입니다. 예를 들어 목록 초기화는 여러 가지 방법으로 수행할 수 있습니다. 그러나 이러한 겉보기에 유사한 방법에는 미묘한 차이가 있습니다. 단순함과 가독성으로 유명한 Python은 C++이나 Java에 비해 느리기로 악명이 높습니다. 'for' 루프는 특히 느린 것으로 알려져 있지만 map() 및 filter()와 같은 메서드는 C로 작성되었기 때문에 더 빠른 것으로 알려져 있습니다.

# 시간을 계산하는 시간 모듈 가져오기import 시간# 시간을 저장하기 위해 목록 초기화forLoopTime =[]whileLoopTime =[]listComprehensionTime =[]starOperatorTime =[]# 500번 프로세스를 반복# 소요된 시간의 평균을 계산합니다.for k in range(500):# 시작 시간 start =time.time() # 빈 목록 선언 a =[] # for i for i in range(10000):a.append(0) # 시간 정지 =time.time() forLoopTime.append(stop-start) # 시작 시간 start =time.time() # 빈 목록 선언 a =[] i =0 # for 루프를 10000번 실행 while(i<10000):a.append(0) i+=1 stop =time.time() whileLoopTime.append(stop-start) start =time.time() # 목록 초기화를 위한 목록 이해 a =[0 for i in range(10000)] stop =time.time() listComprehensionTime.append(stop-start) start =time.time() # * 연산자 사용 a =[0]*10000 stop =time.time() starOperatorTime.append(stop-start)print( "평균 소요시간 by for 루프:" + str(sum(forLoopTime)/100))print(" while 루프에 걸린 평균 시간:" + str(sum(whileLoopTime)/100))print("목록 이해에 걸리는 평균 시간:" + str(sum(listComprehensionTime)/100))print("* 연산자가 소요한 평균 시간:" + str(sum(starOperatorTime)/100)) 

출력

for 루프에 소요된 평균 시간:0.00623725175858while 루프에 소요된 평균 시간:0.00887670278549목록 이해에 소요된 평균 시간:0.00318484544754*연산자가 소요한 평균 시간:1.54037 0.15