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” 循环器。

opfunc 或 None

组合“left” 和 “right” 循环器的函数。

__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)

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

concat(right)

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

simplify()

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

属性

keys

此 Cycler 知道的键。

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

按键值。

此方法返回循环器的转置值。迭代 Cycler 会生成包含每个键单个值的字典,此方法返回一个 dict,其中包含 list,这些列表是给定键的值。

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

返回值:
transposedict

每个键的值列表的字典。

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

将此循环器中的键更改为新名称。修改在原地进行。

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

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

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

键必须完全匹配。

返回值:
循环器

连接的循环器。

示例

>>> 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]

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

返回值:
简单循环器