|
感觉迭代器主要用于声明一些接口的参数类型
例如,[any]( https://docs.python.org/3/library/functions.html#any) 的第一个参数,如果是 list 的话那必须全部展开,把每个值都算出来,但有时候不想算全部的值,或者出于性能考虑不想往后面算
所以像 any, all 这类函数,参数类型声明为 Iterable 表明其对参数的要求比 List 更弱,只需要一个可迭代对象即可,可以是 list 也可以是 set
更不必说内置函数的 map, filter, zip 等的参数类型都是 Iterable
还有内置的 itertools 包提供了很多强大功能,如 itertools.product 计算任意多序列的笛卡尔积 |