Pythonの*演算子はリストに対してどのように機能するのか?
Pythonの*(アスタリスク)演算子は、シーケンスやコレクションを「アンパック」して、位置引数として展開する働きを持っています。リストの各要素を関数の引数として順番に渡したい場合、要素をひとつずつインデックスで取り出す代わりに、*演算子を使えば簡潔に記述できます。
使用例
以下のコードでは、リスト values の要素を multiply 関数の引数として渡しています。
def multiply(a, b): return a * b values = [1, 2] print(multiply(*values))
*演算子によってリストがアンパックされるため、このコードは実際には次のように実行されたことになります。
print(multiply(1, 2))
出力結果
実行すると、以下の出力が得られます。
2
補足:他のイテラブルにも使える
*演算子はリストだけでなく、タプルや文字列など、さまざまなイテラブル(反復可能オブジェクト)に対しても同様に機能します。また、辞書をキーワード引数として展開したい場合は、**(ダブルアスタリスク)演算子を使用します。
-
Pythonにおける正規表現[\d+]の仕組みをわかりやすく解説
Pythonのreモジュールを使うと、文字列から特定のパターンに一致する部分を簡単に抽出できます。本記事では、正規表現「[\d+]」が対象の文字列に対してどのように動作するのか、具体的なコード例とともに解説します。 正規表現「[\d+]」の意味 「[\d+]」は文字クラス([ ])を使用したパターンで、次のいずれか1文字にマッチします。 \d … 半角数字1文字(0〜9) + … プラス記号そのもの ここで重要なのは、通常「+」は「直前のパターンの1回以上の繰り返し」を表す量指定子ですが、角括弧の中では単なるリテラル文字として扱われるという点です。したがって「[\d+]」は「数字または『
-
Pythonにおけるアンダースコア(_)の意味と使い方をわかりやすく解説
Pythonでは、アンダースコア(_)は特別な役割を持つ記号です。一見ただの文字に見えますが、実際にはインタープリタの動作や命名規則、数値リテラルの表記など、さまざまな場面で重要な働きをします。この記事では、Pythonでアンダースコアが使われる主な5つのケースを、コード例とともにわかりやすく解説します。1. インタープリタで直前の式の値を保持するPythonの対話モード(インタープリタ)では、直前に評価した式の結果が、特別な変数「_」に自動的に格納されます。計算結果をすぐに再利用したいときに非常に便利です。使用例>>> 12 + 10 22 >>> _ 2