ホームページ >バックエンド開発 >Python チュートリアル >Python の「itertools.chain」関数でアスタリスクがリストを平坦化するのはなぜですか?
Python でアスタリスク演算子がリストをフラット化する方法
Python では、 itertools.chain 関数を使用してリストのリストをフラット化できます。次のコード スニペットは、これを示しています。
<code class="python">uniqueCrossTabs = list(itertools.chain(*uniqueCrossTabs))</code>
しかし、なぜ関数呼び出しにアスタリスク (*) が含まれているのか疑問に思われるかもしれません。
アスタリスク演算子について理解する
アスタリスクは、Python では「スプラット」演算子として知られています。リストなどの反復可能オブジェクトを受け取り、それを関数呼び出し内の実際の位置引数に展開します。
仕組み
uniqueCrossTabs がリストのリスト: [[1, 2], [3, 4]]。アスタリスクを使用すると、 itertools.chain(*uniqueCrossTabs) はリストを個々のリスト引数に展開します。これは、 itertools.chain([1, 2], [3, 4]) を呼び出すことと同じです。
アスタリスクなしとの比較
アスタリスクなしでは、 uniqueCrossTabs だけを 1 つの引数として渡します。この場合、chain() は個々の要素ではなく、リストのリストを反復処理する反復子を返します。
chain.from_iterable() の使用
Forリストを平坦化する場合は、 itertools.chain.from_iterable() がより適切な選択です。引数として反復可能のうちの 1 つの反復可能を受け取ります。このメソッドを使用すると、コードは次のようになります:
<code class="python">uniqueCrossTabs = list(itertools.chain.from_iterable(uniqueCrossTabs))</code>
以上がPython の「itertools.chain」関数でアスタリスクがリストを平坦化するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。