Я пытаюсь создать случайный текст с использованием частот букв, которые я получил. Во-первых, мне удалось получить следующий код:Использование массива для генерации случайного текста
for i in range(450):
outcome=random.random()
if 0<outcome<0.06775:
sys.stdout.write('a')
if 0.06775<outcome<0.07920:
sys.stdout.write('b')
if 0.07920<outcome<0.098:
sys.stdout.write('c')
....
Это до буквы z и пробела. Это дает мне> 50 строк кода, и я хочу получить тот же результат, используя массив.
До сих пор у меня есть:
f_list = [0, 0.06775, 0.08242, 0.10199, 0.13522, 0.23703, 0.25514, 0.27324, 0.32793, 0.38483, 0.38577, 0.39278, 0.42999, 0.45023, 0.50728, 0.56756, 0.58256, 0.58391, 0.62924, 0.68509, 0.7616, 0.78481, 0.79229, 0.81161, 0.81251, 0.82718, 0.82773, 0.99998]
alphabet = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', ' ']
import random
import sys
for i in range(25):
outcome=random.random()
if f_list[i]<outcome<f_list[i+1]:
sys.stdout.write('alphabet[i]')
Но он не работает должным образом, поскольку диапазон кажется теперь относятся к массиву, а не количество итераций, что я хочу. Выход пуст.
(частоты во втором коде являются правильными) – Julia