python - 为什么zip(*(range(1000),)* 1000000)这么快?

标签 python python-3.x performance python-performance

在Python 3中,zip(*(range(1000),)*1000000)行如何在不到一秒钟的时间内执行?

编辑:
该问题被标记为Why is “1000000000000000 in range(1000000000000001)” so fast in Python 3?的可能重复项。尽管该问题解决了range函数,但此问题解决了zip函数,为什么会如此之快。

最佳答案

因为从python3开始,zip返回一个迭代器,所以它实际上会根据您的请求生成项目。

rangemapfilter也是如此。

以前,以前是rangexrangezipizip,其中第一个在内存中创建整个序列,然后开始对其进行迭代,而第二个在运行中动态生成元素。
Starting in python3,他们删除了另一个版本,默认版本是迭代器。


  
  range()现在的行为类似于以前的xrange()行为,除了它可以与
  任意大小的值。后者不再存在。
  zip()现在返回一个迭代器。

关于python - 为什么zip(*(range(1000),)* 1000000)这么快?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57937361/

相关文章:

由于 Google Adwords 导致的性能问题

python - 奇数恰好需要 1 个参数(给定 2 个)错误 Python

python - 模拟 attr.ib() 的默认值

python - PySide2 QDialog 可能存在的错误

c++ - 使用 n 维 C++ Vector 类实现算术运算符重载的更好方法?

sql - 在需要集合操作的 SQL Server 数据库中,如何设计更高的可扩展性?

Python plist 解析器 IOError : [Errno 63] File name too long:

python - 剖面与地形

python-3.x - print ('>>>' ) 结果是空行?

python-3.x - 导入错误 : cannot import name 'evaluate' ( from surprise import evaluate )