char_cnt_dict = {'a':3, 'b':4, 'c':2, 'd':1}
print(char_cnt_dict['a'])
print(char_cnt_dict['b'])
char_cnt_dict['e'] = 10
print(char_cnt_dict)
test_string = 'shim9984938923-9321841293787523980574319857934802574238957'
cnt_dict = dict()
for char in test_string:
cnt_dict[char] = cnt_dict.get(char, 0) + 1
print(cnt_dict)

위와 같이 dictionary는 key, value 쌍으로 이루어져있다!
cnt_dict = {'a':3, 'b':4, 'c':2, 'd':1}
print(cnt_dict.keys(), type(cnt_dict.keys()))
print(list(cnt_dict.keys()), type(list(cnt_dict.keys())))
print(tuple(cnt_dict.keys()), type(tuple(cnt_dict.keys())))
print("=================================")
print(cnt_dict.values(), type(cnt_dict.values()))
print(list(cnt_dict.values()), type(list(cnt_dict.values())))
print(tuple(cnt_dict.values()), type(tuple(cnt_dict.values())))
print("=================================")
print(cnt_dict.items())
print(list(cnt_dict.items()))
for k, v in cnt_dict.items():
print(k, v)
print("=================================")
cnt_dict = {'a':10, 'b':7, 'c':20, 'd':10}
for k, v in cnt_dict.items():
print(k, v)

dict_name.keys() 를 이용해 key로 접근하거나 dict_name.values를 이용해 value로 접근하거나 아니면 dict_name.items()를 이용해 key, value 모두 접근 가능하다!
장문의 글이 있다했을때 어떤 단어가 많이 나왔는지 확인하기 위해
dict_name[key] = dict_name.get(key, value 시작값) + 1 로 카운트 가능!
input = kloop interview 일때
cnt_dict = dict()
for char in kloop_interview:
cnt_dict[char] = cnt_dict.get(char, 0) + 1
print(cnt_dict)
M_char, M_num = None, None
for char, num in cnt_dict.items():
if M_num == None or M_num < num and char != ' ':
M_char = char
M_num = num
print(f'Kloop interviwe - Max_char : {M_char}, numering : {M_num}')

여러 과목이 있을때 각 과목들의 Meta Data Dictionary(sum, mean, Max, Max_idx, variance, standard deviation) 구하기
scores = [[10,15,30],
[20, 45, 20],
[30, 35, 40],
[40, 30, 50]]
class_names = ['Korean', 'English', 'Maths']
class_datas = ['sum', 'mean', 'Max', 'Max_idx', 'Variance', 'Standard deviation']
n_student = len(scores)
n_class = len(class_names)
score_meta_data = dict()
for class_name in class_names:
score_meta_data[class_name] = dict()
for class_data in class_datas:
score_meta_data[class_name][class_data] = 0
mos = [0] * n_class
for score in scores:
print(score)
for idx, score in enumerate(score):
mos[idx] += score**2
print(mos)
for c_idx, c_score in enumerate(scores):
#print(c_idx, c_score)
for s_idx, s_score in enumerate(c_score):
meta = score_meta_data[class_names[s_idx]]
meta['sum'] += s_score
meta['mean'] = meta['sum'] / n_student
if meta['Max'] < s_score:
meta['Max'] = s_score
meta['Max_idx'] = c_idx
meta['Variance'] = mos[s_idx] / n_data
meta['Standard deviation'] = meta['Variance'] ** 0.5
print(score_meta_data)
