我现在正在学习python中的itertools模块。在学习的时候我才知道itertools.cycle()
函数。
在我的python3.7 IDLE中,我尝试了list(itertools.cycle([1,2,3]))
语句。按Enter键后,我的笔记本电脑的ram被大量消耗。令人惊讶的是它使用了我的笔记本电脑的最大ram。为什么会这样?
对list(cycle([1,2,3]))
的调用等效于
lst = []
for x in cycle([1,2,3]):
lst.append(x)
循环永远不会终止,因为cycle
对象always有下一个要产生的元素,所以lst
无限期增长,仅在计算机用尽内存以分配给列表时才停止。