タプルを括弧で囲む必要がある場合と必要でない場合を正確に定義する参照はどこかにありますか?
最近驚いた例を次に示します。
>>> d = {}
>>> d[0,] = 'potato'
>>> if 0, in d:
File "<stdin>", line 1
if 0, in d:
^
SyntaxError: invalid syntax
この用語を使用できる場所では、expression_list
括弧を使用する必要はありません。
if
ステートメントにはが必要ですがexpression
、 はサポートされていませんexpression_list
。
許可する構文の例expression_list
:
Expressions、Simple、およびCompound ステートメントのドキュメントをgrep すると、Python 文法で使用されているexpression_list
すべての場所がわかります。expression_list
あいまいさを避けたい場合にも括弧が必要です。
以下は 2 つの異なる式です...何かが「式リスト」であるという理由だけで、期待する式リストにはなりません :)
(1, 2, 3) + (4, 5) # results in (1, 2, 3, 4, 5) because + does sequence.extend on the tuples
1, 2, 3 + 4, 5 # this results in (1, 2, 7, 5) because + adds the elements, since there were no parentheses to protect the separate tuples