Python の「line, = ...」の末尾のカンマは何ですか?

DDD
リリース: 2024-10-28 21:27:30
オリジナル
653 人が閲覧しました

 What is the trailing comma in

「line, = ...」の末尾のカンマはカンマ演算子ですか?

Python では、変数行の後のカンマは重要な意味。これは、各要素が左側の対応する変数に割り当てられて、タプルがアンパックされていることを示します。

1 つの要素を持つタプルのアンパック

次のコードを考えてみましょう。

<code class="python">line, = ax.plot(x, np.sin(x))</code>
ログイン後にコピー

ここで、ax.plot() は、Line2D オブジェクトである単一の要素を含むタプルを返します。カンマは、Python にこのタプルを解凍し、その要素を変数行に割り当てるように指示します。

複数の変数を使用した例

通常、複数の戻り値を持つ関数にはアンパックを使用します。 :

<code class="python">base, ext = os.path.splitext(filename)</code>
ログイン後にコピー

このコードは、os.path.splitext() によって返されたタプルを解凍し、その要素を変数 base と ext に割り当てます。

カンマ解凍の代替手段

カンマ展開は便利ですが、別の構文もあります:

  • 括弧の使用: (line,) = ax.plot(x, np.sin(x))
  • リスト構文の使用: [line] = ax.plot(x, np.sin(x))

解凍せずに書き換えます

あなたタプル解凍を使用せずにコードを書き直すこともできます:

<code class="python">line = ax.plot(x, np.sin(x))[0]</code>
ログイン後にコピー

または

<code class="python">lines = ax.plot(x, np.sin(x))

def animate(i):
    lines[0].set_ydata(np.sin(x+i/10.0))  # update the data
    return lines

#Init only required for blitting to give a clean slate.
def init():
    lines[0].set_ydata(np.ma.array(x, mask=True))
    return lines</code>
ログイン後にコピー

結論

「line, =」の末尾のカンマ..." はカンマ演算子ではなく、1 つの要素を含むタプルを解凍するための構文です。この手法は、戻り値を複数の変数に簡潔に割り当てるために広く使用されています。

以上がPython の「line, = ...」の末尾のカンマは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!