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