関数呼び出しでのアスタリスクの使用
Python では、アスタリスク (*) 演算子は「スプラット」演算子として機能します。関数呼び出しで使用すると、リストのような反復可能オブジェクトが個別の位置引数に解凍されます。これは、提供されたコード スニペットで明らかです。
uniqueCrossTabs = list(itertools.chain(*uniqueCrossTabs))
ここで、*uniqueCrossTabs は、ネストされたリスト uniqueCrossTabs を itertools.chain() の一連のリスト引数に展開します。たとえば、uniqueCrossTabs に [[1, 2], [3, 4]] が含まれる場合、*uniqueCrossTabs は [1, 2, 3, 4] に変換されます。
この操作は、アスタリスクなしで uniqueCrossTabs を単に渡すこととは異なります。 。後者の場合、 itertools.chain() は個々のリスト要素ではなくリストのリストを受け取ります。その結果、出力イテレータには、フラット化された値ではなく、その項目内にリストが含まれます。
ネストされたイテラブルをフラット化する別のアプローチは、イテラブルのうちの 1 つのイテラブルを明示的に想定する itertools.chain.from_iterable() を使用することです。これにより、コードが次のように簡略化されます。
uniqueCrossTabs = list(itertools.chain.from_iterable(uniqueCrossTabs))
以上がアスタリスク (*) 演算子は Python 関数呼び出しでイテラブルをどのようにアンパックしますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。