로또 추첨기
- 원하는 시뮬레이션 횟수입력
- 입력 회차만큼 로또추첨 시뮬레이션 진행
- 제일 많이 나온 순서대로 6개 뽑아와서 리스트화
- 진행회차, 결과보고, 선택 리스트(오름차순 정렬) 세가지를 출력
import random
def lotto(want_cnt):
# 숫자 리스트
num_list = list(range(1, 46))
# 회차
count = 0
# 반복한 시뮬레이션 당첨번호 (리스트안에 리스트 형식)
simuls = []
# 각 번호 당첨횟수 카운트 딕셔너리 (key=각번호, value= 나온 횟수, 기본값 0)
num_count = {}
for item in num_list:
num_count[item] = 0
# n회까지 시뮬레이션
while count < int(want_cnt):
# 랜덤하게 6개 선택
sample_list = sorted(random.sample(num_list, 6))
simuls.append(sample_list)
count += 1
# if count == 1000:
# return
# print(str(count)+'회차까지 실행 완료')
# n회 시뮬레이션 한 당첨번호에서 각 번호들이 나온 횟수 카운트
for row in simuls:
for num_cnt in row:
if num_cnt in num_count:
num_count[num_cnt] += 1
else:
num_count[num_cnt] = 1
# 나온 횟수가 가장 많은것부터 순서대로 6개 추출
# value값 기준 내림차순 정렬
sorted_dict = sorted(num_count.items(), key=lambda x: x[1], reverse=True)
# 많이 나온 순서대로 6개 가져오기
most6 = sorted_dict[:6]
# 마지막에 출력할 선택 번호 리스트
select_nums = []
# 회차 실행완료 출력
print(str(count)+'회차까지 실행 완료')
# 결과값 보고
for xx in most6:
select_nums.append(xx[0])
print('번호:', xx[0], '나온 횟수:', xx[1])
# 보기좋게 선택번호 나열
select_nums.sort()
print(select_nums)
# 원하는 회차 입력 기능
want_cnt = input()
lotto(want_cnt)