프로그램

[파이썬] 리스트와 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
반응형