Heim > Artikel > Backend-Entwicklung > Wie entpackt der Asterisk (*)-Operator Iterables in Python-Funktionsaufrufen?
Verwendung von Sternchen in Funktionsaufrufen
In Python dient der Sternchen (*)-Operator als „Splat“-Operator. Bei Verwendung in einem Funktionsaufruf entpackt es eine iterierbare Funktion wie eine Liste in verschiedene Positionsargumente. Dies wird im bereitgestellten Codeausschnitt deutlich:
uniqueCrossTabs = list(itertools.chain(*uniqueCrossTabs))
Hier erweitert *uniqueCrossTabs die verschachtelte Liste uniqueCrossTabs in eine Reihe von Listenargumenten für itertools.chain(). Wenn uniqueCrossTabs beispielsweise [[1, 2], [3, 4]] enthält, wird *uniqueCrossTabs in [1, 2, 3, 4] übersetzt.
Dieser Vorgang unterscheidet sich von der einfachen Übergabe von uniqueCrossTabs ohne das Sternchen . Im letzteren Fall erhält itertools.chain() eine Liste von Listen statt einzelner Listenelemente. Folglich enthält der Ausgabeiterator Listen in seinen Elementen und keine reduzierten Werte.
Ein alternativer Ansatz zum Reduzieren verschachtelter Iterables ist die Verwendung von itertools.chain.from_iterable(), das explizit ein einzelnes Iterable von Iterables erwartet. Dies vereinfacht den Code zu:
uniqueCrossTabs = list(itertools.chain.from_iterable(uniqueCrossTabs))
Das obige ist der detaillierte Inhalt vonWie entpackt der Asterisk (*)-Operator Iterables in Python-Funktionsaufrufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!