auの日記

プログラミング初心者の日記。(auはハンドルネームです)

Pythonのアンパックって何

auです。

Pythonのアンパックについて調べました。

アンパックとは

アンパックとは、複数の値を各変数に代入することです。

アンパックは、荷物を開けて中身を取り出すという意味があるそうです。

やり方は複数あるようです。

タプルをアンパックする

a, b, c = (1, 2, 3)
print(a) # 1
print(b) # 2
print(c) # 3

複数の値(タプルの1, 2, 3)を各変数(a, b, c)に代入していることが分かります。

リストをアンパックする

リストのアンパックには、「*」を使います。

test_list = [1, 2, 3]
print(*test_list) # 1 2 3

複数の値(リスト型[1, 2, 3])を一気に表示していることが分かります。

処理的には個別に取り出しているようです。

以下と同じということですね。

print(test_list[0], test_list[1], test_list[2])

rangeもリストを返すので使えるようです。

print(*range(0, 3)) # 0 1 2

辞書型をアンパックする

>|python|
test_dict = {'id': 1, 'name': 'au'}
print(*test_dict) # id name
print(*test_dict.values()) # 1 au
|

複数の値(辞書型のキーとバリュー)を一気に表示しています。

関数で引数をアンパックする

def test_func(x, y, *z):
    print('x: ', x)
    print('y: ', y)
    print('z: ', z)

test_func(1, 2, 3, 4, 5) 
# x:  1
# y:  2
# z:  (3, 4, 5)

引数で受け取れなくなった後ろの値がアンパックされていることが分かりました。