51

タプルを括弧で囲む必要がある場合と必要でない場合を正確に定義する参照はどこかにありますか?

最近驚いた例を次に示します。

>>> d = {}
>>> d[0,] = 'potato'
>>> if 0, in d:
  File "<stdin>", line 1
    if 0, in d:
        ^
SyntaxError: invalid syntax
4

3 に答える 3

15

この用語を使用できる場所では、expression_list括弧を使用する必要はありません。

ifステートメントにはが必要ですがexpression、 はサポートされていませんexpression_list

許可する構文の例expression_list:

ExpressionsSimple、およびCompound ステートメントのドキュメントをgrep すると、Python 文法で使用されているexpression_listすべての場所がわかります。expression_list

于 2013-04-15T14:41:43.580 に答える
0

あいまいさを避けたい場合にも括弧が必要です。

以下は 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
于 2016-11-22T19:12:48.187 に答える