mik*_*mik 2 python python-itertools
是否真的可以看到 itertools.Combination 或其他对象的 len() ,而不将其具体化到列表中?
我可以用阶乘得到梳子的基数或排列,......但我想要一些概括的东西。
谢谢
对于任何 iterable it,您可以执行以下操作:
length = sum(1 for ignore in it)
Run Code Online (Sandbox Code Playgroud)
这不会创建列表,因此内存占用很小。但是对于很多iterables来说,也是消费的 it(比如如果it是generator,就被消费了,不能重启;如果it是list,就不消费)。通常没有“非破坏性”的方法来确定任意迭代的长度。
另请注意,如果it提供无限的对象序列,上面的代码将“永远”运行。