普贤教程 › 包参考
itertools 包
集合组合子
| 项 | 值 |
|---|---|
| 包名 | itertools |
| 版本 | 0.2.0 |
| 可用版本 | 0.1.0 / 0.2.0 |
| 入口 | itertools.px |
| 分类 | 并发与通用模式 |
| 文件数 / 行数 | 1 / 432 |
安装与引入
bash
pxpkg init # 首次 pxpkg add itertools@0.2.0 pxpkg install
px
import itertools所属分类教程:并发与通用模式
公开接口
| 函数 | 参数 |
|---|---|
it_product | lists |
it_permutations | arr, k |
it_combinations | arr, k |
it_chain | arrays |
it_enumerate | arr |
it_unique | arr |
it_take_while | arr, pred |
it_take | arr, n |
it_drop | arr, n |
it_repeat | x, n |
it_count | start, step, n |
it_cycle | arr, n |
it_chunk | arr, n |
it_window | arr, n |
it_zip_longest | a, b, fill |
其余 24 个 def(内部与辅助,可直接调用但不属稳定接口)
| 函数 | 参数 |
|---|---|
it_append_copy | lst, x |
it_dict_copy | d |
it_check_n | n |
it_product_rec | lists, idx, cur, out |
it_perm_rec | arr, depth, k, cur, used, out |
it_comb_rec | arr, start, k, cur, out |
it_zip | a, b |
it_zip3 | a, b, c |
it_filter | arr, pred |
it_map | arr, f |
it_reduce | arr, f, init |
it_flat_map | arr, f |
it_group_by | arr, key_fn |
it_partition | arr, pred |
it_interleave | a, b |
it_compact | arr |
it_pairwise | arr |
it_accumulate | arr, f, init |
it_range | start, stop, step = 1 |
it_reverse | arr |
it_slice | arr, start, stop |
it_max_by | arr, key_fn |
it_min_by | arr, key_fn |
it_sum | arr |
包内说明(源码头注释)
text
============================================================
普贤生态库:registry/itertools —— 集合组合子
------------------------------------------------------------
纯函数库(无 IO、无状态),编译(px build)与解释(px run)双模式一致。
it_product(lists) → [[...]] 笛卡尔积
it_permutations(arr, k) → [[...]] 排列(有序)
it_combinations(arr, k) → [[...]] 组合(无序)
it_chain(arrays) → [...] 展平
it_enumerate(arr) → [[idx, item], ...]
it_unique(arr) → [...] 去重保序
it_take(arr, n) → Ok([...]) | Err 前 n 个
it_drop(arr, n) → Ok([...]) | Err 跳过 n 个
it_take_while(arr, pred) → [...] 满足谓词的前缀(pred 返回 bool)
it_repeat(x, n) → Ok([...]) | Err x 重复 n 次
it_count(start, step, n) → Ok([...]) | Err 等差序列 n 项
it_cycle(arr, n) → Ok([...]) | Err 循环取前 n 个
it_chunk(arr, n) → Ok([...]) | Err 分块(末块可短)
it_window(arr, n) → Ok([...]) | Err 滑动窗口
it_zip_longest(a, b, fill) → [[...]] 按长者对齐
说明:所有结果即时返回 list(PuXian 无惰性生成器语义);n < 0 一律 Err。
============================================================
---- 内部工具 ----