Оценить логический кортеж в Python

Я пытаюсь заставить это оценить как false.

(False,)

В настоящее время он равен true, потому что я думаю, что кортеж не пуст. Итак, как можно извлечь или преобразовать это в логическое значение? Спасибо~


person House3272    schedule 17.11.2014    source источник
comment
как должен вести себя ответ, если в кортеже более одного значения?   -  person Thibaut    schedule 17.11.2014
comment
вот так (Ложь,)[0] ?   -  person lvella    schedule 17.11.2014
comment
@ Тибо, это было бы невозможно. Он возвращается из логического запроса sql.   -  person House3272    schedule 17.11.2014


Ответы (1)


Извлечь элемент из кортежа — самый простой подход:

value = (False,)[0]

Python2 более снисходителен, но в целом не рекомендуется рассматривать кортеж как одно значение для целей сравнения (Python3 явно запрещает это)

Вместо этого посмотрите на

all

а также

any

функции для этого поведения. Как всегда, документация вам в помощь:

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

person en_Knight    schedule 17.11.2014
comment
Спасибо, второй раз питон. Не думал, что это сработает, ха-ха. Это дало мне странную ошибку, когда я попытался использовать цикл for. Я отмечу ваш ответ, как только он позволит мне..... - person House3272; 17.11.2014
comment
Редактировать: о, вы имеете в виду, что вы больше не можете сравнивать кортеж с int или float, используя < или > и т. д. Я полагаю, что это достаточно верно. - person DSM; 17.11.2014
comment
@DSM Вот что я имею в виду - это просто пример того, как сравнивать списки с несписками, и почему, вероятно, не стоит говорить mylist == True или подобное, даже если это будет работать в некоторые случаи. Ошибка, с которой можно получить истинное значение массива, неоднозначна или что-то подобное очень полезно, я думаю - person en_Knight; 17.11.2014