Я пытаюсь перебрать список элементов, однако список может быть массивным и требует слишком много времени для выполнения. Я использую газету api. Для контура I Построенное:Самый эффективный способ перебора списка элементов. Python 2.7
for article in list_articles:
Каждая статья в list_articles являются объектом в формате:
<newspaper.article.Article object at 0x1103e1250>
я проверил, что некоторые рекомендуется использовать xrange или диапазон, однако, что не работает в мой случай, что дает ошибку типа:
TypeError: 'int' object is not iterable
было бы удивительным, если кто-нибудь может мне точку в правильном направлении или дать мне некоторое представление о том, что может увеличить efficietly Перебор в этом списке.
Вы попробовали 'for x in range (len (list_articles)):'? Скорее всего, вы получаете 'TypeError', потому что вы просто делали' for x in len (list_articles): ' – perfect5th
Узкое место здесь не так, как вы повторяете, и меняете на' xrange' или что бы это не сделало быстрее - на самом деле наоборот. Проблема гораздо более вероятна в том, что вы делаете внутри цикла, или в некоторых плохо разработанных аспектах общей структуры вашего кода. – user2357112
У вас уже есть список, и метод, который вы используете для итерации, является наиболее эффективным.Поскольку вы говорите, что есть много статей, вам нужно будет избавиться от списка, и единственный способ сделать это - создать пользовательский итератор, который тянет газетную статью, используя api, и кэширует только некоторые из них, чтобы избежать сети накладные расходы. Этот итератор может затем предоставлять статью каждый раз, когда она вызывается в цикле, и извлекает некоторые из них, когда кеш становится устаревшим или заканчивается – smac89