У меня есть следующий код, который выполняет поиск ширины первого порядка (bfs) в списке вершин графа.Как пропустить следующую итерацию во время цикла for в python?
В настоящее время у меня есть код, который работает на bfs для каждого элемента в списке, но я хочу сделать так, чтобы, если следующий элемент в цикле for уже находится в наборе обнаруженных узлов, тогда цикл for должен пропускать над ним, так что bfs не нужно выполнять на каждой вершине.
Моя основная причина для этого состоит в том, что я должен читать в очень большом файле, поэтому он вызывает сбой памяти, когда я выполняю bfs на каждой вершине; мой код работает на небольших тестовых примерах, но не на большом файле.
Я знаю, что инструкция continue позволяет пропустить текущую итерацию, но я не могу понять, как пропустить следующую итерацию.
Любая помощь приветствуется; Спасибо.
def count_components(g):
dictionary = {}
dict_list = {}
for i in g.vertices():
dictionary = breadth_first_search(g,i)
dictionary_keys = list(dictionary.keys())
dict_list[i] = dictionary_keys
for value in dict_list.values():
for i in range(len(value)):
value[i] = str(value[i])
result = {}
for key, value in dict_list.items():
dict_list[key].sort(key=str.lower)
if value not in result.values():
result[key] = value
count = len(result)
return count
Есть ли причина, по которой вы не можете просто пропустить текущую итерацию, если текущий элемент уже находится в наборе обнаруженных узлов? –
Можете указать, где (этот цикл) вы хотите, чтобы это прохождение произошло? Может быть, добавить условное, а затем '# HELP - здесь?? –