ホームページ >バックエンド開発 >Python チュートリアル >* と演算子は Python 関数呼び出しの引数をどのようにアンパックするのでしょうか?
および 演算子を使用した関数呼び出しでのアンパック*
Python の および * 演算子は重要な役割を果たします関数呼び出しでの役割により、シーケンス、コレクション、 dictionaries.
* (単一スター) によるシーケンスとコレクションのアンパック
* (単一スター) 演算子は、シーケンスまたはコレクションを位置引数にアンパックします。たとえば、次のコードを考えてみます。
def add(a, b): return a + b values = (1, 2) s = add(*values) # unpacks values into individual arguments
これは、
s = add(1, 2)
(ダブルスター)**
で辞書を解凍するのと同じです。** (二重星) 演算子は、辞書に対して同様の操作を実行し、名前付き引数を抽出します。たとえば、次の場合:
values = {'a': 1, 'b': 2} s = add(**values) # unpacks values as keyword arguments
これは次と同等です:
s = add(a=1, b=2)
関数呼び出しアンパッキングのための演算子の結合
両方 * 演算子は関数呼び出しで一緒に使用できます。たとえば、次の場合:
def sum(a, b, c, d): return a + b + c + d values1 = (1, 2) values2 = {'c': 10, 'd': 15} s = add(*values1, **values2) # combines sequence and dictionary unpacking
これは次と同等です:
s = sum(1, 2, c=10, d=15)
パフォーマンスへの影響
と * タプルと辞書の作成により、オーバーヘッドが発生します。ただし、小規模なデータ セットの場合、パフォーマンスへの影響は一般に無視できます。より大きなデータ セットの場合は、タプルや辞書内包表記の使用など、効率を高めるための代替方法を検討してください。
関数パラメータでの追加の使用
以上が* と演算子は Python 関数呼び出しの引数をどのようにアンパックするのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。