@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. На втором шаге начальным значением будет конечное число первого шага, а конечное значение второго шага - есть сумма конечных значений первого и второго.
  • Вопрос задан
  • 160 просмотров
Решения вопроса 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
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через TM ID
Похожие вопросы
Popmechanic Москва
от 100 000 до 150 000 руб.
Panda Media Нижний Новгород
от 70 000 руб.
НЛ Континент Новосибирск
от 60 000 до 100 000 руб.
18 авг. 2018, в 09:13
13000 руб./за проект
18 авг. 2018, в 01:10
17000 руб./за проект
17 авг. 2018, в 23:00
5500 руб./за проект