1. TOP
  2. プログラム
  3. ソフト
  4. python
  5. Python-エッセンシャルー4

Python-エッセンシャルー4

アンパック

pythonには、アンパック構文があり、一つの代入文で複数の値に代入でき
ます。アンパック代入の形式は、禁止されているタプルの値更新に
似ていますが、実際の動作は全く異なります。
アンパックは、インデックスでタプルにアクセスするより見た目がスッキリ
します。これと同じパターンの構文をリスト、シーケンス、イテラブル内の
深いレベルにあるイテラブルへの代入にも使えます。

pythonを新たに使い始めた人は、アンパックを使って、一時変数なし
で価のスワップができることに驚きます。
name = ['pretzels', 'carrots', 'arugula','bacon']

動作

このスワップは、代入演算子の右側のa[i],a[i-1]がまず評価され、値が
一時的な無名タプルに(ループの1回目なら('carrots', 'pretzels')が
格納されます。次に、代入演算子の左側のアンパックパターン(a[i-1],a[i])
を使って、そのタプル値を取り出しそれぞれ変数a[i-1],a[a]に代入され
ます。最後に一時的な無名tupleが静かに破棄されます。

別の重要な

アンパックの用途が、forループや同様の内包表記とジェネレータ式
におけるターゲットリストです。
snacks = [('bacon', 350), ('donut', 240), ('muffin', 190)]