在Python 3中,zip(*(range(1000),)*1000000)
行如何在不到一秒钟的时间内执行?
编辑:
该问题被标记为Why is “1000000000000000 in range(1000000000000001)” so fast in Python 3?的可能重复项。尽管该问题解决了range
函数,但此问题解决了zip
函数,为什么会如此之快。
最佳答案
因为从python3开始,zip
返回一个迭代器,所以它实际上会根据您的请求生成项目。range
,map
和filter
也是如此。
以前,以前是range
和xrange
,zip
和izip
,其中第一个在内存中创建整个序列,然后开始对其进行迭代,而第二个在运行中动态生成元素。
Starting in python3,他们删除了另一个版本,默认版本是迭代器。
range()
现在的行为类似于以前的xrange()
行为,除了它可以与
任意大小的值。后者不再存在。
zip()
现在返回一个迭代器。
关于python - 为什么zip(*(range(1000),)* 1000000)这么快?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57937361/