web-dev-qa-db-ja.com

リストの複数の値を割り当てる

リストの値を要素に割り当てる「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]
16
codeKiller

入力するだけです:

>>> 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]
24
NDevox

NDevoxの回答に完全に同意する

a,b,c,d = [1,2,3,4]

リストの一部だけが必要な場合、たとえばリストの2番目と最後の要素のみが必要な場合は、

_, a, _, b = [1,2,3,4]
4
r0ng

a, b, c, d = myListはあなたが欲しいものです。

基本的に、この関数はタプルを返します。これは、反復可能であるため、リストに似ています。

これはすべての反復可能オブジェクトで機能します。

3
AbdealiJK