Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonで2つの変数の値を交換する方法【一時変数あり・なしの2パターン】

はじめに

プログラミングにおいて、2つの変数が持つ値を入れ替える「スワップ(交換)」処理は非常によく使われる基本操作です。この記事では、Pythonで変数を交換する2つの方法を、実際のコード例とともにわかりやすく解説します。

方法1:一時変数を使う方法

最も古典的で汎用的なのが、もう1つの一時変数(テンポラリ変数)を介して値を入れ替える方法です。他の多くのプログラミング言語でも同様の手法が使われます。

>>> x = 10
>>> y = 20
>>> z = x # x の値を一時変数 z に退避
>>> x = y # y の値を x に代入
>>> y = z # 退避しておいた元の x の値を y に代入
>>> x, y
(20, 10)

このように、一時変数 z を経由することで、xy の値が正しく入れ替わっていることが確認できます。

方法2:一時変数を使わない方法(タプルアンパッキング)

Pythonには、タプルのアンパッキング(多重代入)という便利な機能があります。これを利用すると、一時変数を用意することなく、たった1行で変数の値を交換できます。

>>> a, b = 5, 7
>>> a, b
(5, 7)
>>> a, b = b, a # 右辺でタプル (b, a) を作り、左辺へ同時に代入
>>> a, b
(7, 5)

右辺の b, a はタプル (7, 5) として先に評価され、その後それぞれの値が ab に同時に代入されるため、値がきれいに入れ替わります。これはPythonならではの簡潔で読みやすい書き方です。

まとめ

方法特徴
一時変数を使うどの言語でも通用する基本的な手法。処理の流れが明確。
タプルアンパッキングPythonらしい簡潔な書き方。コード量が少なく可読性が高い。

日常的にPythonを書く場合は、一時変数不要のタプルアンパッキングを使うのが一般的でおすすめです。一方、アルゴリズムの学習や他言語との共通理解のためには、一時変数を使う伝統的な方法も押さえておくとよいでしょう。

  1. Pythonで2つのプロットを並べて作成する方法【matplotlibのsubplot活用】

    matplotlibのsubplot(row, col, index)メソッドを使うと、1つの図(figure)を行数×列数の領域に分割し、指定したインデックスの位置にそれぞれグラフを描画できます。本記事では、このメソッドを利用して、1つの図の中に2つのグラフを横並びで作成する方法を解説します。 実装の手順 numpyを使って、x座標と2種類のy座標(y1、y2)のデータポイントを作成します。 nrows=1、ncols=2、index=1を指定してsubplot()メソッドを呼び出し、現在のfigureに最初のサブプロットを追加します。 plot()メソッドで、xとy1のデータを使って折れ

  2. PythonとTensorFlowで2つの行列を乗算する方法を解説

    TensorFlowは、Googleが提供する機械学習フレームワークです。オープンソースとして公開されており、Pythonと組み合わせてアルゴリズムやディープラーニングアプリケーションなどを実装するために利用されています。研究用途から本番運用まで幅広く使われており、複雑な数学的演算を高速に処理できる最適化技術を備えているのが特長です。 その理由の一つは、NumPyと多次元配列を基盤としている点にあります。この多次元配列は「テンソル」と呼ばれます。TensorFlowは深層ニューラルネットワークの構築をサポートし、高いスケーラビリティを持ち、人気のデータセットが多数付属しています。また、GPUに