cycler.Cycler

class cycler.Cycler(left: Cycler[K, V] | Iterable[dict[K, V]] | None, right: Cycler[K, V] | None = None, op: Any = None)[源代码]

可组合的循环器。

此类具有组合方法

+

用于 ‘内部’ 乘积 (zip)

+=

就地 +

*

用于外部乘积 (itertools.product) 和整数乘法

*=

就地 *

并支持通过 [] 进行基本切片。

参数
left, rightCycler 或 None

“左”和“右”循环器。

op函数或 None

组合“左”和“右”循环器的函数。

__init__(left: Cycler[K, V] | Iterable[dict[K, V]] | None, right: Cycler[K, V] | None = None, op: Any = None)[源代码]

半私有初始化。

请勿直接使用此方法,而应使用 cycler 函数。

方法

__init__(left[, right, op])

半私有初始化。

by_key()

按键取值。

change_key(old, new)

将此循环器中的键更改为新名称。

concat(right)

连接 Cycler,就像使用 itertools.chain 链接一样。

simplify()

将循环器简化为循环器的总和(但没有乘积)。

属性

keys

此 Cycler 知道的键。

by_key() dict[K, list[V]][源代码]

按键取值。

这将返回循环器的转置值。 迭代 Cycler 会产生每个键只有一个值的字典,此方法返回一个 dictlist,它们是给定键的值。

返回值可用于仅使用 + 创建等效的 Cycler

返回
transposedict

每个键的值的列表字典。

change_key(old: K, new: K) None[源代码]

将此循环器中的键更改为新名称。修改是就地执行的。

如果旧键与新键相同,则不执行任何操作。如果新键已是键,则引发 ValueError。如果旧键不是键,则引发 KeyError。

concat(right: Cycler[K, U]) Cycler[K, V | U]

连接 Cycler,就像使用 itertools.chain 链接一样。

键必须完全匹配。

返回
Cycler

串联的循环器。

示例

>>> num = cycler('a', range(3))
>>> let = cycler('a', 'abc')
>>> num.concat(let)
cycler('a', [0, 1, 2, 'a', 'b', 'c'])
property keys: set[K]

此 Cycler 知道的键。

simplify() Cycler[K, V][源代码]

将循环器简化为循环器的总和(但没有乘积)。

返回
simpleCycler