cycler.Cycler

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

Zusammensetzbare Zyklen.

Diese Klasse verfügt über Kompositionsmethoden

+

für „innere“ Produkte (Zip)

+=

direkt (in-place) +

*

für äußere Produkte (itertools.product) und Ganzzahlmultiplikation

*=

direkt (in-place) *

und unterstützt einfaches Slicing über [].

Parameter:
left, rightCycler oder None

Die „linken“ und „rechten“ Zyklen.

opFunktion oder None

Funktion, die die linken und rechten Zyklen zusammensetzt.

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

Semi-privater Init.

Verwenden Sie dies nicht direkt, verwenden Sie stattdessen die Funktion cycler.

Methoden

__init__(left[, right, op])

Semi-privater Init.

by_key()

Werte nach Schlüssel.

change_key(alt, neu)

Ändern Sie einen Schlüssel in diesem Zyklus in einen neuen Namen.

concat(right)

Verketten Sie Cyclers, als wären sie mit itertools.chain verkettet.

vereinfachen()

Vereinfachen Sie den Zyklus in eine Summe (aber keine Produkte) von Zyklen.

Attribute

Schlüssel

Die Schlüssel, die dieser Zyklus kennt.

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

Werte nach Schlüssel.

Dies gibt die transponierten Werte des Zykels zurück. Das Iterieren über einen Cycler ergibt Dictionaries mit einem einzelnen Wert für jeden Schlüssel. Diese Methode gibt ein dict von list zurück, die die Werte für den angegebenen Schlüssel sind.

Der zurückgegebene Wert kann verwendet werden, um einen äquivalenten Cycler nur mit + zu erstellen.

Gibt zurück:
transposedict

Dict von Listen der Werte für jeden Schlüssel.

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

Ändern Sie einen Schlüssel in diesem Zyklus in einen neuen Namen. Die Änderung erfolgt direkt (in-place).

Tut nichts, wenn der alte Schlüssel mit dem neuen Schlüssel identisch ist. Löst einen ValueError aus, wenn der neue Schlüssel bereits ein Schlüssel ist. Löst einen KeyError aus, wenn der alte Schlüssel kein Schlüssel ist.

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

Verketten Sie Cyclers, als wären sie mit itertools.chain verkettet.

Die Schlüssel müssen exakt übereinstimmen.

Gibt zurück:
Cycler

Der verkettete Zyklus.

Beispiele

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

Die Schlüssel, die dieser Zyklus kennt.

simplify() Cycler[K, V][source]

Vereinfachen Sie den Zyklus in eine Summe (aber keine Produkte) von Zyklen.

Gibt zurück:
simpleCycler