Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- D = {}
- D['name'] = [1, 2, 5, 4, 2, 1, 6]
- D['name_1'] = [1, 1, 1, 1]
- D['name_2'] = [2, 1]
- D['name_3'] = [1, 4]
- def get_score(Dict):
- final_score = 0.
- mini_seq = 0
- for key_, list_ in Dict.items():
- cur_list = list_
- cur_list.sort()
- len_ = len(cur_list)
- if (len_ <= 1):
- mini_seq += 1
- continue
- new_list = [0] * len_
- cur_cl = -1
- cur_cnt = 0
- cur_ptr = -1
- for j in range(len_):
- if (j == 0):
- cur_cl = cur_list[j]
- cur_cnt = 1
- cur_ptr = 0
- else:
- if (cur_list[j] == cur_cl):
- cur_cnt += 1
- else:
- new_list[cur_ptr] = cur_cnt
- cur_cl = cur_list[j]
- cur_cnt = 1
- cur_ptr += 1
- new_list[cur_ptr] = cur_cnt
- cur_score = 0.
- for el in new_list:
- cur_score += (len_ - el)**2
- cur_score /= (len_ - 1) * len_ * len_
- # print(cur_score)
- final_score += cur_score
- if (len(Dict.keys()) == mini_seq):
- return 0.
- final_score /= (len(Dict.keys()) - mini_seq)
- return final_score
- print(get_score(D))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement