cycler.Cycler

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

可组合的循环。

此类别拥有组合方法

+

用于“内部”乘积 (zip)

+=

原地 +

*

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

*=

原地 *

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

参数:
left, rightCycler 或 None

“left”和“right”cycler。

op函数 或 None

用于组合“left”和“right”cycler 的函数。

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

半私有初始化。

请勿直接使用此函数,请改用 cycler 函数。

方法

__init__(left[, right, op])

半私有初始化。

by_key()

按键获取值。

change_key(old, new)

将此 cycler 中的键更改为新名称。

concat(right)

连接 Cycler,如同使用 itertools.chain 链式连接。

simplify()

将 cycler 简化为 cycler 的和(但不包括乘积)。

属性

keys

此 Cycler 知道的键。

by_key() dict[K, list[V]][source]

按键获取值。

此方法返回 cycler 的转置值。迭代 Cycler 会产生每个键只有一个值的字典,而此方法返回一个包含列表的 dict,这些列表是给定键的值。

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

返回:
transpose字典

包含每个键值的列表的字典。

change_key(old: K, new: K) None[source]

将此 cycler 中的键更改为新名称。修改是原地进行的。

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

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

连接 Cycler,如同使用 itertools.chain 链式连接。

键必须完全匹配。

返回:
Cycler

连接后的 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][source]

将 cycler 简化为 cycler 的和(但不包括乘积)。

返回:
simpleCycler