リストの値を要素に割り当てる「Python的な」方法があるかどうか知りたいですか?より明確にするために、私はこのようなものを求めています:
myList = [3, 5, 7, 2]
a, b, c, d = something(myList)
そのため:
a = 3
b = 5
c = 7
d = 2
私はこれを手動で行うよりも良い他のオプションを探しています:
a = myList[0]
b = myList[1]
c = myList[2]
d = myList[3]
入力するだけです:
>>> a,b,c,d = [1,2,3,4]
>>> a
1
>>> b
2
>>> c
3
>>> d
4
Pythonはassignment unpacking
上記のように複数の変数にiterable
が割り当てられている場合。
Python3.x
これは拡張されました。スター演算子を使用して、iterable
の長さより短い変数の数にアンパックすることもできます。
>>> a,b,*c = [1,2,3,4]
>>> a
1
>>> b
2
>>> c
[3, 4]
NDevoxの回答に完全に同意する
a,b,c,d = [1,2,3,4]
リストの一部だけが必要な場合、たとえばリストの2番目と最後の要素のみが必要な場合は、
_, a, _, b = [1,2,3,4]
a, b, c, d = myList
はあなたが欲しいものです。
基本的に、この関数はタプルを返します。これは、反復可能であるため、リストに似ています。
これはすべての反復可能オブジェクトで機能します。