栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

itertools.product是否会延迟评估其参数?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

itertools.product是否会延迟评估其参数?

itertools.product
懒惰地生成其结果,但是对于参数而言并非如此。他们受到热切评价。每个可迭代的参数都首先转换为元组:

参数的评估(而不是结果的产生)与文档中显示的Python实现非常相似:

...pools = [tuple(pool) for pool in args] * repeat

而在CPython实现中,

pools
是一个元组的元组:

for (i=0; i < nargs ; ++i) {     PyObject *item = PyTuple_GET_ITEM(args, i);     PyObject *pool = PySequence_Tuple(item);        if (pool == NULL)         goto error;     PyTuple_SET_ITEM(pools, i, pool);     indices[i] = 0; }

之所以如此,是因为

product
有时有时需要遍历一次以上的迭代,如果将参数作为只能被使用一次的迭代器保留,则这是不可能的。

实际上,您不能从

itertools.count
对象构建元组。在传递给之前,请考虑 将切片
至的合理长度。
itertools.islice``product



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/639295.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号