PR
更新:2024/09/16

Pythonのアンパックについて解説!リスト、タプル、辞書の活用法

はるか
はるか
Pythonのアンパックって知ってる?
ふゅか
ふゅか
うん、関数にリストやタプル、辞書を展開して渡す方法だよね!便利だよね♪

1. アンパックとは

Pythonでは、関数の引数にリスト、タプル、辞書を展開して渡すことができます。これにより、関数呼び出し時に引数を簡潔に渡すことができます。以下にリスト、タプル、辞書の展開方法について説明します。

2. Pythonコード

2.1. リストおよびタプルの展開

はるか
はるか
リストやタプルをどうやって展開するの?
ふゅか
ふゅか
リストやタプルの要素を関数の引数として渡すには、アンパック演算子「*」を使うのよ!例えば、次のコードを見てね。

リストやタプルの要素を関数の個々の引数として展開するには、アンパック演算子 * を使用します。

次のコードの関数の動作は引数a,b,cをprintで出力します。

def my_function(a, b, c):
    print(a, b, c)

my_list = [1, 2, 3]
my_function(*my_list)
# 出力: 1 2 3

my_tuple = (4, 5, 6)
my_function(*my_tuple)
# 出力: 4 5 6

はるか
はるか
なるほど、リストやタプルの要素を展開して渡してるのか。
ふゅか
ふゅか
そうそう!とっても便利でしょ?次は辞書の展開を見てみよう!

2.2. 辞書の展開

はるか
はるか
辞書も展開できるの?
ふゅか
ふゅか
うん、辞書のキーと値を関数のキーワード引数として展開するには、演算子「**」を使うのよ。これがその例だよ。

辞書のキーと値を関数のキーワード引数として展開するには、ダブルアンパック演算子 ** を使用します。

次のコードの関数の動作は引数a,b,cをprintで出力します。

def my_function(a, b, c):
    print(a, b, c)

my_dict = {'a': 7, 'b': 8, 'c': 9}
my_function(**my_dict)
# 出力: 7 8 9

2.3. 可変長引数と一緒に使用する例

リスト、タプル、辞書の展開は、引数の数が多い場合や動的に引数を設定したい場合に非常に便利です。以下に複数の引数を展開して関数を呼び出す実際の使用例を示します。

def calculate_total(*args, **kwargs):
    total = sum(args)
    for key, value in kwargs.items():
        total += value
    return total

# リストと辞書の展開を組み合わせて関数に引数を渡す
numbers = [1, 2, 3]
additional_numbers = {'four': 4, 'five': 5}
print(calculate_total(*numbers, **additional_numbers))
# 出力: 15

この例では、*args**kwargs を使用して、位置引数とキーワード引数の両方を受け取る関数 calculate_total を定義しています。リスト numbers と辞書 additional_numbers の要素を展開して関数に渡しています。

可変長引数については次の記事で解説しています。

*argsと**kwargsとは?Pythonでの関数の可変長引数を解説

2.4. まとめ

Pythonでは、リストやタプルを * 演算子で、辞書を ** 演算子で展開することで、関数の引数に渡すことができます。これにより、コードがより柔軟で読みやすくなります。


check

Pythonの基本から応用まで、幅広くカバーする記事を公開中です。学習のポイントや実践的なコード例を通じて、Pythonの魅力と実用性を深く理解することができます。ぜひ、こちらの記事で気になる記事を見つけてください!

Pythonの記事のまとめ

PR