Pythonでこのようにする方法はありますか:
a, b, = 1, 3, 4, 5
その後:
>>> a
1
>>> b
3
上記のコードはスローされるため機能しません
ValueError: too many values to unpack
Nolen の回答に追加するために、Python 3 では、次のように残りをアンパックすることもできます。
>>> a, b, *rest = 1, 2, 3, 4, 5, 6, 7
>>> a
1
>>> rest
[3, 4, 5, 6, 7]
残念ながら、これは Python 2 では機能しません。
あなたが示したリテラルでそれを行う方法はありません。ただし、スライスして必要な効果を得ることができます。
a, b = [1, 3, 4, 5, 6][:2]
リストの最初の 2 つの値を取得するには:
a, b = my_list[:2]
Python 3 では、次のことができます。
>>> a, b, *_ = 1, 3, 4, 5
>>> a
1
>>> b
3
_
必要のない値の単なるプレースホルダーです
_
「捨てたい」変数を表すために使用できます
>>> a, b, _ = 1, 3, 4
>>> a
1
>>> b
3
または、Python 3.x では次のようにできます。
a, *b = 1, 3, 4
あなたに与える:
In [15]: a
Out[15]: 1
In [16]: b
Out[16]: [3, 4]
解析する必要がありますが、例外は回避されますb
。これは、 の左側に 2 つの変数のみが必要であると想定しています=
。それ以外の場合は、
a, b, *ignore = ....
v3.x で