Comment l'opérateur Asterisk aplatit les listes en Python
En Python, la fonction itertools.chain peut être utilisée pour aplatir une liste de listes. L'extrait de code suivant le démontre :
<code class="python">uniqueCrossTabs = list(itertools.chain(*uniqueCrossTabs))</code>
Cependant, vous vous demandez peut-être pourquoi l'astérisque (*) est inclus dans l'appel de fonction.
Comprendre l'opérateur astérisque
L'astérisque est connu sous le nom d'opérateur "splat" en Python. Il prend un itérable, tel qu'une liste, et le développe en arguments de position réels dans l'appel de fonction.
Comment ça marche
Considérons l'exemple où uniqueCrossTabs est un liste de listes : [[1, 2], [3, 4]]. Lorsque vous utilisez l'astérisque, itertools.chain(*uniqueCrossTabs) développe la liste en arguments de liste individuels. Cela équivaut à appeler itertools.chain([1, 2], [3, 4]).
Comparaison avec Sans l'astérisque
Sans l'astérisque, vous serait de transmettre uniquement uniqueCrossTabs comme argument unique. Dans ce cas, chain() renverrait un itérateur qui parcourt la liste des listes, pas les éléments individuels.
Utilisation de chain.from_iterable()
Pour Pour aplatir les listes, itertools.chain.from_iterable() est un choix plus approprié. Il prend un seul itérable parmi les itérables comme argument. En utilisant cette méthode, le code devient :
<code class="python">uniqueCrossTabs = list(itertools.chain.from_iterable(uniqueCrossTabs))</code>
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!