프로그램
[파이썬] 리스트와 set에서 in 으로 중복 조건 확인(리스트와 set 구조의 실행 시간)
오디세이99
2023. 7. 5. 12:08
728x90
반응형
다음과 같이 random하게 어떤 조건을 만들어서 사용할때
중복되는 조건을 사용하지 않도록 기존에 만들어진 조건을 리스트에 저장해서 in 으로 확인하는 코
%%timeit
import random
lst = [] # 리스트 사용
for i in range(100000):
a = f"{random.randint(1,10)}-{random.randint(1,10)}-{random.randint(1,10)}" # key 값을 만듬
# print(a)
if a in lst: # 중복을 check 해서 중복이 아닐때만 append
continue
else:
lst.append(a)
# print('append!!!')
739 ms ± 23.9 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)
집합(set)을 사용해서 사용
%%timeit
import random
lst = set([]) # set 사용
for i in range(100000):
a = f"{random.randint(1,10)}-{random.randint(1,10)}-{random.randint(1,10)}"
# print(a)
if a in lst: # 중복 check를 set로 사용
# print(a,' continue')
continue
else:
lst.add(a)
# print('append!!!')
191 ms ± 3.59 ms per loop (mean ± std. dev. of 7 runs, 10 loops each)
집합을 사용하면 약 4배 빠릅니다.
728x90
반응형