본문 바로가기
프로그램

[파이썬] 리스트와 set에서 in 으로 중복 조건 확인(리스트와 set 구조의 실행 시간)

by 오디세이99 2023. 7. 5.
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
반응형

댓글