У меня есть код python 2.7 для квадратов значений в FreqDist (т. Е. Распределение частоты NLTK) и сумма всех квадратов.значения квадратов квадратов в FreqDist, python
Например, из этого: Вы должны получить: 2 * 2 + 1 * 1 + 1 * 1 + 1 * 1 = 7
Это работает для меня, но мне было интересно, есть ли «лучший» способ сделать это, чем это:
for word, frequency in t.freq_dist.iteritems():
total += frequency*frequency
Я спрашиваю, потому что мне нужно, чтобы затем цикл через freq_dist снова для чего-то другого; сразу же после этого кода, так что я понял, что это не хорошая практика, чтобы перебрать его дважды, если есть лучший способ ...
Избегайте создания списка с помощью 'sum (i ** 2 for i in lst)' –
Нет необходимости в двойном парсе, когда генератор является единственным аргументом функции. –