Выполните подсчет распределения частоты на генераторе и верните значения, которые больше n - PullRequest
0 голосов
/ 05 сентября 2018

Есть ли способ выполнить подсчет объекта-генератора, который указывает на список списков? Если да, могу ли я сделать операцию подсчета выводом объекта-генератора (из подсчитанных элементов) предыдущего объекта-генератора? Затем я хотел бы получить подсчет частоты. Я использую генераторы для сохранения памяти и предотвращения сбоев. Мой реальный набор данных / список огромен!

У меня есть объект генератора 'gen_list', созданный из списка списков, я просто покажу вам, как выглядит список, если объект генератора был напечатан:

In [1]: ll = [(('color'), ('blue')), (('food'), ('grapes')), (('color'), ('blue'))]

# create generator object 'test2'
In [2]: genobj = (each for each in ll)

# create a generator object with counted items
In [3]: count = (test2.count((i), i) for i in test2)

# list count
In [4]: list(count)

Это создает ошибку:

---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-72-83b1c94e3edd> in <module>()
----> 1 list(count)

<ipython-input-70-829ea68a1314> in <genexpr>(.0)
----> 1 count = (test2.count((i), i) for i in test2)

AttributeError: 'generator' object has no attribute 'count'

Так что я застрял здесь. Если я могу решить эту проблему, я могу перейти к получению подсчета частоты (в форме объекта генератора), который будет выглядеть примерно так: [(2, («цвет», «синий»)), (1, («еда», «виноград»)), (2, («цвет», «синий»))] Тогда я бы хотел сохранить только элементы со значениями больше 2 для визуального анализа.

...