Работа с несколькими списками, итерация по каждому из них. Вот фрагмент кода:Как перейти к следующему элементу во вложенном списке? Python
self.links = []
self.iter=iter(self.links)
for tgt in self.links:
for link in self.mal_list:
print(link)
if tgt == link:
print("Found Suspicious Link: {0}".format(tgt))
self.count += 1
else:
self.count += 1
self.crawl(self.iter.next())
Его переход на следующий элемент в списке ссылок, просто отлично. Для списка подписи вредоносных программ я попытался использовать аналогичный элемент iter, но я не совсем уверен, что это даже лучший способ, и если бы это было поместить его в мой код, чтобы каждая ссылка, которая была скрыта из списка, сравнивалась с каждый элемент в списке вредоносных программ. Перед циклом открывается следующий элемент в списке ссылок. Какие-либо предложения?
@aaronasterling: +1 Хорошо поймать эту ошибку !! – pyfunc
Ну, я сделал self.iter, потому что при вызове crawl (tgt) он просто продолжал сканировать первый элемент в списке ссылок снова и снова. Я понимаю, что у вас есть здесь, чтобы удалить второй цикл, подумав о том, что он делает, это имеет смысл, но теперь я остаюсь с оригинальной проблемой, потому что это не продвигающие элементы. это лучший способ сделать это и обеспечить, чтобы я вызывал .next() в обоих блоках операторов if-else? – Stev0
@ Stev0: Это будет ошибкой в вашем crawl(); вам, вероятно, будет лучше исправить это там. –