8
請看下面的例子:爲什麼Python將一個元素作爲一個整數對待元組?
(1) #outputs 1
但是如果我添加逗號,它會根據Python文檔是正確的:)
(1,) #output (1,)
這是超級奇怪了吧。任何人都可以解釋嗎?
一個相關的問題:Python是否沒有辦法知道(1)應該是一個元組(1)而不是1?
感謝您的回覆。
請看下面的例子:爲什麼Python將一個元素作爲一個整數對待元組?
(1) #outputs 1
但是如果我添加逗號,它會根據Python文檔是正確的:)
(1,) #output (1,)
這是超級奇怪了吧。任何人都可以解釋嗎?
一個相關的問題:Python是否沒有辦法知道(1)應該是一個元組(1)而不是1?
感謝您的回覆。
實際上,它是創建元組的逗號;括號僅在其他情況下會有歧義的情況下才是必要的。畢竟,括號可以用於分組及:
>>> 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)
這是有幫助的。我明白了:)謝謝 – user2228392
也許是因爲Python認爲'(1)'是一個公式,如'(1 + 0)'? –
'(2 + 0)'應該如'1 /(2 + 0)'那樣對待,一個元組? – thefourtheye
想你,我明白了:) – user2228392