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

Pythonのタプルにおける繰り返し演算子(*)の仕組みと使い方

通常、* 記号は乗算(掛け算)を表すために使われますが、左側のオペランドがタプルである場合、この記号は「繰り返し演算子」として機能します。繰り返し演算子を使うと、タプルのコピーを複数個作成し、それらをすべて連結して1つの新しいタプルを生成することができます。

基本構文

新しいタプル = (元のタプル) * 繰り返す回数

例:単一要素のタプルを繰り返す

numbers = (0,) * 5  # カンマを付けることで、これが単一要素のタプルであり、
                    # 単なる式ではないことを明示しています
print(numbers)

出力

(0, 0, 0, 0, 0)

(0,) は要素が1つだけのタプルです。ここでポイントとなるのは、末尾のカンマです。Pythonでは (0) だけを書くと括弧で囲まれた数値として扱われ、タプルにはなりません。(0,) のようにカンマを付けることで、初めてタプルとして認識されます。

上記のコードでは、繰り返し演算子 * がこの1要素のタプルを5回複製し、それらをすべて連結して1つのタプルにまとめています。

例:複数要素のタプルを繰り返す

numbers = (0, 1, 2) * 3
print(numbers)

出力

(0, 1, 2, 0, 1, 2, 0, 1, 2)

このように、複数の要素を持つタプルに対しても繰り返し演算子を使用できます。元のタプルの要素の順序は保たれたまま、指定した回数だけパターン全体が繰り返され、新しいタプルとして生成されます。

補足:知っておくべきポイント

  • 元のタプルは変更されない:タプルはイミュータブル(不変)なので、繰り返し演算子は常に新しいタプルを作成します。元のタプルには影響しません。
  • 0以下の回数を指定した場合* 0 や負の数を指定すると、空のタプル () が返されます。
  • リストでも同じ動作:同様の繰り返し演算子はリストにも使用でき、[0] * 3 のように書くことで [0, 0, 0] を得られます。

繰り返し演算子は、初期値を持つ固定長のシーケンスを簡単に作成できる便利な機能です。特に、同じ値で埋められたタプルやリストを初期化したい場面でよく使われます。

  1. Pythonの正規表現における\B(非単語境界)の動作を解説

    Pythonの正規表現における \B の意味とは?正規表現の \b は「単語境界」を表すメタ文字で、片側が単語構成文字(通常は英字・数字・アンダースコア)であるような位置にマッチします。一方、今回解説する \B はその逆で、「\b がマッチしないすべての位置」、つまり単語境界ではない位置にマッチします。\B の動作を確認するサンプルコード以下のコードは、re.findall() を使って正規表現 \Bcat がどのように動作するかを示したものです。import re result = re.findall(r\Bcat, certificate) result2 = re.findall(r

  2. Pythonにおけるアンダースコア(_)の意味と使い方をわかりやすく解説

    Pythonでは、アンダースコア(_)は特別な役割を持つ記号です。一見ただの文字に見えますが、実際にはインタープリタの動作や命名規則、数値リテラルの表記など、さまざまな場面で重要な働きをします。この記事では、Pythonでアンダースコアが使われる主な5つのケースを、コード例とともにわかりやすく解説します。1. インタープリタで直前の式の値を保持するPythonの対話モード(インタープリタ)では、直前に評価した式の結果が、特別な変数「_」に自動的に格納されます。計算結果をすぐに再利用したいときに非常に便利です。使用例>>> 12 + 10 22 >>> _ 2