Python の "x, = ..." はカンマ演算子ですか?
Python では、代入の変数行の後のカンマこの声明はその目的についての疑問を引き起こすかもしれない。直観に反して、複数の式や区切り文字をマージするのはカンマ演算子ではなく、関数呼び出しによって返された単一要素タプルのアンパックを示すインジケーターです。
たとえば、コード サンプルでは次のようになります。
<code class="python">line, = ax.plot(x, np.sin(x))</code>
ax.plot() は、単一の Line2D オブジェクトを含むタプルを返します。この行のカンマはタプルを解凍し、要素を変数行に割り当てます。
このパターンは、複数の値を返す関数を扱うときによく使用されます。次の例を考えてみましょう。
<code class="python">base, ext = os.path.splitext(filename)</code>
ここで、os.path.splitext() は、変数baseとextに割り当てられた2つの要素を含むタプルを返します。
代入ターゲット内のカンマターゲットが、アンパックされたタプル内の要素の数と一致するリストまたはタプルである場合は省略できます:
<code class="python">(line,) = ax.plot(x, np.sin(x))</code>
あるいは、返されたタプルの最初の要素に直接アクセスすることで、アンパックを完全に回避することもできます:
<code class="python">line = ax.plot(x, np.sin(x))[0]</code>
代入でタプルのアンパックを使用すると、特に複数の値を返す関数を扱う場合に、複数の変数を一度に割り当てるための簡潔で読みやすい方法が提供されます。
以上が\'x, = ...\' のような Python 代入でカンマは何をするのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。