2014-11-17 59 views
1

我試圖讓這個評估爲假。評估布爾元組在Python

(False,) 

它目前等同於真,因爲我認爲元組不是空的。 那麼如何提取或將其轉換爲布爾值? 謝謝〜

+2

應該怎麼回答的行爲,如果有在數組中的多個值? – Thibaut

+1

想要(False,)[0]? – lvella

+0

@Thibaut這是不可能的。它從一個布爾sql查詢返回。 – House3272

回答

5

摘自元組的元素是最簡單的方法:

value = (False,)[0] 

Python2較爲寬鬆,但總體上是不好的做法對待一個元組作爲比較的單個值目的(Python3 explicetly禁止它)

相反,看看

all 

any 

功能針對此行爲。與往常一樣,文檔是你的朋友:

https://docs.python.org/2/library/functions.html#all

+0

謝謝,第二次蟒蛇。沒想到這會起作用哈哈。當我嘗試使用for循環時,它給了我一個奇怪的錯誤。我會馬上回答你的答案..... – House3272

+0

編輯:哦,你的意思是你不能將一個元組與一個int進行比較,或者使用'<' or '>'等等來浮動。我想這足夠真實了。 – DSM

+0

@DSM這就是我的意思 - 它只是作爲如何將列表與非列表進行比較的一個例子,以及爲什麼說「mylist == True」或類似的東西可能不是一個好主意,即使它在某些情況下會起作用。我認爲,人們可以得到「數組的真值」的錯誤或類似的東西非常有用 –