セクション 1. 章 1
single
Pythonにおけるアンパッキング:リストとタプルからの値の抽出
メニューを表示するにはスワイプしてください
アンパッキングは強力で多用途な概念。タプル、リスト、辞書、range、さらには文字列など、さまざまなイテラブルデータ構造から値を抽出することが可能。この反対の操作がパッキング。多くの場合、これら2つの概念は同時に使用されることが多い。トピックを段階的に解説。
まず、アンパッキングとパッキングを比較。
Pythonでは、1つの代入文でイテラブルから値をパックおよびアンパックできる。パッキングを行うには、変数名の前に* イテラブルアンパッキング演算子を使用。
1234567# unpacking a, b, c = (1, 2, 3) # a = 1, b = 2, c = 3 print(f"a = {a}, b = {b}, c = {c}") # packing a, b, *c = 1, 2, 3, 4, 5 # a = 1, b = 2, c = [3, 4, 5] print(f"a = {a}, b = {b}, c = {c}")
変数の数と異なる数の値をアンパックしようとすると、エラーが発生。
12a, b = 1, 2, 3 # ValueError: too many values to unpack a, b, c, d = 1, 2, 3 # ValueError: not enough values to unpack
右辺の値は、タプル、リスト、ジェネレータ、range、辞書、セット、または文字列である場合があります。これらそれぞれの例を見ていきます。
注意
カンマで区切られた値が1行に並んでいて括弧がない場合、それは1つのタプルです。 1, 2, 3 は (1, 2, 3) と同じ意味です
セットは順序のないデータのコレクションです。
# string
a, b, c = "123" # a = "1", b = "2", c ="3"
# list
a, b, c = [1, 2, 3] # a = 1, b = 2, c = 3
# range
a, b, c = range(3) # a = 0, b = 1, c = 2
# set
a, b, c = {1, 2, 3} # a = 1, b = 2, c = 3
a, b, c = {3, 2, 1} # a = 1, b = 2, c = 3
# dict
dict_num = {"one": 1, "two": 2, "three": 3}
a, b, c = dict_num # a = "one", b = "two", c = "three"
a, b, c = dict_num.values() # a = 1, b = 2, c = 3
a, b, c = dict_num.items() # a = ("one", 1), b = ("two", 2), c = ("three", 3)
# assignment to the list
[a, b, c] = 1, 2, 3 # a = 1, b = 2, c = 3
[a, b, c] = "123" # a = "1", b = "2", c ="3"
タスク
スワイプしてコーディングを開始
少し練習してみましょう。
-
タプルがあり、上記の例のようにアンパックする必要があります。
-
name, age, careerの変数を使用してください。 -
結果を確認するために出力してください。
解答
すべて明確でしたか?
フィードバックありがとうございます!
セクション 1. 章 1
single
AIに質問する
AIに質問する
何でも質問するか、提案された質問の1つを試してチャットを始めてください