@coldunox

Как разбить интервал [0; 1] на полуинтервалы?

import collections

co = collections.Counter()
file_txt = open("test.txt","r", encoding='utf-8')
for line in file_txt:
    co.update(line.lower())

d = dict(co)
count = sum(d.values())

low = 0.0
high = 1.0
for key, value in d.items():
    print( low ,': ', key,':',  value*1/count)


В текстовом файле лежит - шуршу шумом

Вывод выглядит пока так

0.0 :  ш : 0.2727272727272727
0.0 :  у : 0.2727272727272727
0.0 :  р : 0.09090909090909091
0.0 :    : 0.09090909090909091
0.0 :  м : 0.18181818181818182
0.0 :  о : 0.09090909090909091


Должен вот так
0                Ш  0,272727273 
0,272727273      У  0,545454545 
0,545454545      М  0,727272727 
0,727272727      Р  0,818181818 
0,818181818      _  0,909090909 
0,909090909      О  1


Какое условие нужно написать, чтобы все сработало? Или создавать переменную? То есть у меня есть частоты. Известно, что начальное - 0, конечное - 1. На втором шаге начальным значением будет конечное число первого шага, а конечное значение второго шага - есть сумма конечных значений первого и второго.
  • Вопрос задан
  • 574 просмотра
Решения вопроса 1
longclaps
@longclaps
from collections import Counter

co = Counter("шуршу шумом")
total, lo = sum(co.values()), 0
for k, v in co.most_common():
    hi = lo + v
    print('%f\t%c\t%f' % (lo / total, k, hi / total))
    lo = hi
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
28 нояб. 2024, в 05:21
2000 руб./за проект
28 нояб. 2024, в 05:18
500 руб./за проект
28 нояб. 2024, в 03:51
3500 руб./за проект