Heim > Backend-Entwicklung > Python-Tutorial > Wie entpackt der Asterisk (*)-Operator Iterables in Python-Funktionsaufrufen?

Wie entpackt der Asterisk (*)-Operator Iterables in Python-Funktionsaufrufen?

DDD
Freigeben: 2024-11-01 04:41:28
Original
327 Leute haben es durchsucht

How Does the Asterisk (*) Operator Unpack Iterables in Python Function Calls?

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))
Nach dem Login kopieren

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))
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage