У меня есть следующий код, который выполняет поиск в ширину (bfs) в списке вершин графа.
В настоящее время у меня есть код, который запускает 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 = dictionary_keys
for value in dict_list.values():
for i in range(len(value)):
value = str(value)
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
Подробнее здесь: https://stackoverflow.com/questions/420 ... -in-python
Как пропустить следующую итерацию во время цикла for в Python? ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение