2016-09-22 3 views
4

私はこれをどのように遭遇したのか分かりません。どう考えたらいいのか分かりませんが、[] = [][] = ''ですが、'' = []は許可されていません。しかし、それは何の効果もないようですが、私は疑問に思っています。空リストを割り当てる

答えて

3

これはPythonの複数の割り当て(シーケンス開梱)に関連している:文字列は文字の配列であるので、あなたも行うことができます

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

a, b, c = 1, 2, 3 

はと同じように動作します

a, b, c = "abc" # assign each character to a variable 

あなたが発見したのは、変性症です。両側に空の配列があります。これはタプルではなく、左のリストなので構文的に有効です。ニースを見つける。前にそれを試して考えたことはありません!あなたが左に空のタプルで、Pythonは文句ことをしようとした場合

興味深いことに、:

() =()   # SyntaxError: can't assign to() 

は、Python開発者が少し抜け穴を閉じるのを忘れているように見えます!

1

pythonでのパッキング/アンパックの検索をしてください。答えが見つかります。 これは、基本的に、複数の変数を1回の移動で割り当てることです。

>>> [a,v] = [2,4] 
>>> print a 
2 
>>> print v 
4 
+0

「(a、b)=(1,2)」は機能しますが、意味はありますが、 '()=()'では機能しません。 – DenverCoder9