Почему встроенный FreqDist не работает? - PullRequest
1 голос
/ 31 марта 2020

Я написал простую функцию.

def common_long_words(text):
    sorted(w for w in set(text) if len(w) > 7 and (FreqDist(text))[w] > 7)

Это застряло.

Кроме того, [w for w in set(text5) if len(w) > 7 and FreqDist(text5)[w] > 7 не удается. Это просто застревает.

Однако это работает:

fdist5 = FreqDist(text5)
[w for w in set(text5) if len(w) > 7 and fdist5[w] > 7

Разве это не работает в python? Это почему? Кроме того, почему это зависает, если это неправильно, это должно появиться как ошибка, синтаксис или время выполнения.


Это работает, безупречно и быстро:

>>> def common_long_words(text):
...     fdist = FreqDist(text)
...     print(sorted(w for w in set(text) if len(w) > 7 and fdist[w] > 7))
...
>>> for t in all_texts:
...     common_long_words(t)
...