List.extend() 在 Python 中没有按预期工作

我有一个列表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]

出了什么问题?


大话西游666
浏览 102回答 2
2回答

德玛西亚99

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)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python