У меня есть queue
списка и neighbors
объектов-итераторов, элементы которых я хочу добавить в список.
queue = [1]
neighbor = T.neighbors(1) #neighbor is a <dict_keyiterator at 0x16843d03368>
print(list(neighbor)) #Output: [2, 3]
queue.extend([n for n in neighbor])
print(queue)
Выход:
[1]
Ожидаемый результат:
[1, 2, 3]
Что происходит не так?
Вы уже исчерпали neighbor
итератор, когда используете его в конструкторе list
для печати, поэтому он становится пустым в понимании списка в следующей строке.
Храните преобразованный список в переменной, чтобы вы могли его распечатать и использовать в понимании списка:
queue = [1]
neighbor = T.neighbors(1) #neighbor is a <dict_keyiterator at 0x16843d03368>
neighbors = list(neighbor)
print(neighbors) #Output: [2, 3]
queue.extend([n for n in neighbors])
print(queue)
queue.extend(neighbors)
будет хорошо
Вы уже использовали итератор:
print(list(neighbor))
Возьмите эту линию.
queue.extend(list(neighbor))