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