import operator
lotto_data = []
with open('lotto.CSV') as file:
for line in file:
lotto_data.append(line[:-1].split(','))
int(lotto_data[0][-1])
lista = []
for i in lotto_data:
for e in i[:-1]:
lista.append(int(e))
seta = set(lista)
key_list = []
value_list = []
for i in seta:
key_list.append(i)
value_list.append(lista.count(i))
dict_number = dict(zip(key_list, value_list))
dict_sorted_number = sorted(dict_number.items, key = operator.itemgetter(1), reverse = True)
혹은
dict_sorted_number = sorted(dict_number.items,
key = x : x[1], reverse = True)
다음은 로또의 전체 회차를 돌면서 총 빈도수 각각의 번호들이
얼마만큼이나 나왔는지 체크한다.
그리고 값을 dictionary로 빼서 정렬을 해주었다. 람다식을 이용하거나
operator를 사용해서 뽑아올 수 있다.
mean_num = 0
for i, e in enumerate(lotto_data[:-1]):
mean_num = int(sum(e)/ len(e))
print(i + 1,'회차 평균: ', mean_num)
enumerate 를 이용해서 인덱스가 없는 for문을
인덱스를 포함해서 나오게하면서 i는 0부터 시작하기에
1회차 부터시작하는 로또기에 i는 인덱스를 나타내고 평균을
내서 옆에 나오게 해주었다.
import math
for i, e in enumerate(lotto_data[:-1]):
for x in e :
mean_num = int(sum(e)/ len(e))
n = len(e)
d = [y - mean_num for y in e]
stdev = math.sqrt(sum([z * z for z in d])/(n - 1))
print(i + 1,'회차별 표준편차',stdev)
평균을 내고 그 평균에 대한 편차 얼마나 평균에서 떨어져있는지 람다식을
이용해서 d라는 변수에 넣어주고 분산치를 구해주고 마지막으로 표준편차를
해준다