Warum reduziert Asterisk Listen in der Python-Funktion „itertools.chain'?

Mary-Kate Olsen
Freigeben: 2024-10-27 11:13:01
Original
789 Leute haben es durchsucht

Why Does the Asterisk Flatten Lists in Python's `itertools.chain` Function?

Wie der Asterisk-Operator Listen in Python reduziert

In Python kann die Funktion itertools.chain verwendet werden, um eine Liste von Listen zu reduzieren. Das folgende Code-Snippet veranschaulicht dies:

<code class="python">uniqueCrossTabs = list(itertools.chain(*uniqueCrossTabs))</code>
Nach dem Login kopieren

Sie fragen sich jedoch möglicherweise, warum das Sternchen (*) im Funktionsaufruf enthalten ist.

Den Asterisk-Operator verstehen

Das Sternchen ist in Python als „Splat“-Operator bekannt. Es nimmt ein iterierbares Element, beispielsweise eine Liste, und erweitert es im Funktionsaufruf in tatsächliche Positionsargumente.

So funktioniert es

Betrachten Sie das Beispiel, in dem uniqueCrossTabs ein ist Liste der Listen: [[1, 2], [3, 4]]. Wenn Sie das Sternchen verwenden, erweitert itertools.chain(*uniqueCrossTabs) die Liste in einzelne Listenargumente. Dies entspricht dem Aufruf von itertools.chain([1, 2], [3, 4]).

Vergleich mit Ohne Sternchen

Ohne Sternchen Sie würde nur uniqueCrossTabs als einzelnes Argument übergeben. In diesem Fall würde chain() einen Iterator zurückgeben, der die Liste der Listen durchläuft, nicht die einzelnen Elemente.

Verwendung von chain.from_iterable()

Für Um Listen zu reduzieren, ist itertools.chain.from_iterable() die geeignetere Wahl. Als Argument wird ein einzelnes Iterable von Iterables benötigt. Mit dieser Methode wird der Code zu:

<code class="python">uniqueCrossTabs = list(itertools.chain.from_iterable(uniqueCrossTabs))</code>
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWarum reduziert Asterisk Listen in der Python-Funktion „itertools.chain'?. 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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!