Почему встроенная функция Python `all` возвращает` true`, когда проверяет, находится ли пустая строка в списке, когда неPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Почему встроенная функция Python `all` возвращает` true`, когда проверяет, находится ли пустая строка в списке, когда не

Сообщение Anonymous »

Я написал функцию, которая проверяет, есть ли каждый символ на данной строке также присутствует в произвольном списке. Код работает для большинства случаев, но когда ввод является пустой строкой, встроенная функция All оценивается в True , даже если это значение не присутствует в списке элементов :

Код: Выделить всё

ITEMS = ['a', 'b', 'c', 'd']

def check_all_chars_are_in_list(string):
return all(char in ITEMS for char in string)

if __name__ == "__main__":
print(check_all_chars_are_in_list('saban'))   # False, as expected. (1)
print(check_all_chars_are_in_list('abcd'))    # True, as expected.  (2)
print(check_all_chars_are_in_list(''))        # True (why?).        (3)

< /code>
Я провел ручный тест, чтобы попытаться понять это поведение. Я просто проверил утверждение в 
через терминал:

Код: Выделить всё

>>> st = ''
>>> l = ['a', 'b', 'c', 'd']
>>> st in l
False        # As expected
Но я получил ожидаемое значение false , так почему же пример (3) в моем коде оценивается в true ? Кто -нибудь может объяснить мне это, пожалуйста?
Спасибо!

Подробнее здесь: https://stackoverflow.com/questions/796 ... n-empty-st
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»