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
반응형
'프로그램' 카테고리의 다른 글
| [파있선] 문제 : 엑셀 데이터를 정렬해서 chart 그리기 (5) | 2023.07.12 |
|---|---|
| [파이썬] 문제 : 2개의 엑셀 파일 읽어 비교하기 (openpyxl) (0) | 2023.07.12 |
| [파이썬] 문제 : numpy로 입력 받은 수들의 평균 계산 (0) | 2023.06.26 |
| [C/C++] 문제 : 별 모양 출력 (0) | 2023.06.24 |
| [C/C++] 문제 : 1 차원 배열에 정수 입력 받아 오름차순 정렬하기 (0) | 2023.06.14 |
댓글