Fri_Oct_23
.
.
.
갑자기 파이썬 리스트의 clear 메소드가 왜 있는지 궁금했다.
파이썬에서 리스트를 초기화 하는 방법은 그냥
name_of_list = []
이라고 해주면 된다.
그런데 clear()이라는 메소드도 존재한다.
name_of_list.clear()
라고 하면 끝이다.
이유 없이 궁금해서 테스트를 해보았다.
크기가 같은 요소 9개가 담긴 리스트를 만들고 초기화하고 이렇게 2가지 방법을 각 각 100만 번을 진행하였다.
import time count = 1 while count < 11: # 일반적인 초기화 방법 start_time = time.time() for i in range(1000000): name_of_list = [1,2,3,4,5,6,7,8,9] name_of_list = [] end_time = time.time() print('name_of_list = [] 로 시간 측정 = ', end_time - start_time) # clear 메소드를 통한 초기화 방법 start_time = time.time() for i in range(1000000): name_of_list = [1,2,3,4,5,6,7,8,9] name_of_list.clear() end_time = time.time() print('name_of_list.clear() 로 시간 측정 = ', end_time - start_time) count += 1 print('##########')
결과는 다음과 같다.
name_of_list = [] 로 시간 측정 = 0.22995686531066895 name_of_list.clear() 로 시간 측정 = 0.3112528324127197 ########## name_of_list = [] 로 시간 측정 = 0.2506110668182373 name_of_list.clear() 로 시간 측정 = 0.28780603408813477 ########## name_of_list = [] 로 시간 측정 = 0.2128009796142578 name_of_list.clear() 로 시간 측정 = 0.2596268653869629 ########## name_of_list = [] 로 시간 측정 = 0.20771312713623047 name_of_list.clear() 로 시간 측정 = 0.4477219581604004 ########## name_of_list = [] 로 시간 측정 = 0.2229311466217041 name_of_list.clear() 로 시간 측정 = 0.27841901779174805 ########## name_of_list = [] 로 시간 측정 = 0.22823810577392578 name_of_list.clear() 로 시간 측정 = 0.26341700553894043 ########## name_of_list = [] 로 시간 측정 = 0.41693615913391113 name_of_list.clear() 로 시간 측정 = 0.2743232250213623 ########## name_of_list = [] 로 시간 측정 = 0.42478418350219727 name_of_list.clear() 로 시간 측정 = 0.3290998935699463 ########## name_of_list = [] 로 시간 측정 = 0.3297231197357178 name_of_list.clear() 로 시간 측정 = 0.4470250606536865 ########## name_of_list = [] 로 시간 측정 = 0.315579891204834 name_of_list.clear() 로 시간 측정 = 0.42251014709472656 ##########
이렇게 테스트를 해야 하는건지 잘 모르겠지만 아무튼 대부분 비슷했고 굳이 따지자면
그냥 일반적인 name_of_list = []의 방법으로 초기화를 하는 것이 아주 조금 더 빠른 것 같다.
시간과 메모리의 효율을 잘 조절해야하는 알고리즘(코테)에서는 그냥 일반적인 방법으로 초기화를 하는 것이 더 좋은 것 같다.
결론 : 그래서 clear 메소드는 왜 있는 것일까? ㅋㅋㅋ