2013-12-14 11 views
8

は、次の例を参照してください。Pythonは1つの項目を持つタプルを整数として扱うのはなぜですか?

(1) #outputs 1 

をしかし、私はカンマを追加する場合、それはPythonのドキュメントに応じて右になります:)私にはスーパー奇妙だ

(1,) #output (1,) 

。誰もこれを説明できますか?

関連する質問:(1)が1ではなくタプル(1)である必要があることをPythonが知る方法はありませんか?

今後のお返事ありがとうございます。

+1

おそらく、(1 + 0)のようにPythonは '(1)'を式と考えているのでしょうか? –

+0

'(2 + 0)'は '1 /(2 + 0)'のように扱われるべきですか?タプルですか? – thefourtheye

+0

あなたは、私が理解していると思う: – user2228392

答えて

18

実際は、タプルを作成するのはコンマです。かっこは、そうでなければあいまいさがある場合にのみ必要です。結局のところ、括弧を使ってグループ化することもできます:

>>> 1, 2 
(1, 2) 
>>> 1, 
(1,) 
>>> (1) 
1 
>>> 2 * 3, 4 
(6, 4) 
>>> 2 * (3, 4) 
(3, 4, 3, 4) 
>>> 1, + (2, 3) * 4 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
TypeError: bad operand type for unary +: 'tuple' 
>>> (1,) + (2, 3) * 4 
(1, 2, 3, 2, 3, 2, 3, 2, 3) 
+0

それは有用です。私は理解している:)ありがとう – user2228392

関連する問題