Нет, []
не равно None
. []
- это пустой список - список без контента, но, тем не менее, существует и может иметь некоторые элементы. None
- это значение, представляющее «ничто» - когда вы находите значение None
, оно измеряет что-то вроде «эта переменная не имеет соответствующего содержимого». Поскольку пустые списки могут быть релевантным содержимым - например, пустой список может быть начальным состоянием списка, который со временем будет накапливать элементы - тогда нет смысла предполагать, что [] == None
.
armonge дал вам ответ: просто используйте список в качестве условия, потому что пустые списки «ложные» - то есть, пустые списки имеют тот же эффект, что и False
, когда используются в качестве условия для if
, while
и т. Д. Если вы хотите выполнить что-то, когда в списке нет содержимого, просто отрицайте это:
if not x:
print 'empty list (is not None)'
Кстати, вопрос: вы привыкли программировать на Лиспе? Это единственный язык, в котором пустой список эквивалентен «None type» (в данном случае nil
).