2016-11-08 101 views
2

我不解看到了Python返回真像這樣的比較: 「A」 ==(「A」)元組比較'A'==('A'),如何避免這種情況?

後來我發現this解釋從this問題。

Python將元組中的每個元素與另一個比較項進行比較。 我的問題是我該如何避免這種情況? 我在找的是'=='邏輯運算符,它返回'A'=='A'或('A')==('A')的真,但是'A'==' ('一個')。

+2

'('A')'不是元組,是嗎? 'type(('A'))'返回'str'。 – Psidom

+0

哦,我的壞。我不知道定義一個元素元組是一種特殊情況。 –

+3

逗號定義了一個元組,而不是括號。例外是空元組'()',它可以(應該?)寫成'(,)',但不需要'()'來表示任何括號表達式。 – chepner

回答

8

您的「解釋」與您的實際問題無關。

('A')不是元組。它只是一個字符串。單元素元組定義如下:('A',)。當您使用一個實際的元組,你的比較正確返回False:

>>> 'A' == ('A',) 
False 
+2

你太快了。 –

+0

釘了它。我想我必須更準確地研究元組之後的逗號問題。 – DaniPaniz

1

正確的答案已經存在由Daniel Roseman提供。只是一個加法:

>>> type("A") 
<type 'str'> 

>>> type(("A")) 
<type 'str'> 

>>> type(("A",)) 
<type 'tuple'> 
相關問題