for i in list
if i == thingIAmLookingFor
return True
Вышесказанное - ужасный способ проверить, существует ли предмет в коллекции. Он возвращает True
из функции, поэтому, если вам нужен тест как часть некоторого кода, вам нужно переместить его в отдельную служебную функцию или добавить thingWasFound = False
перед циклом и установить его True
в операторе if (и затем разрыв), каждая из которых представляет собой несколько строк стандартного выражения для простого выражения.
Кроме того, если вы просто используете thingIAmLookingFor in list
, этот может выполняться более эффективно, делая меньше операций на уровне Python (для этого потребуется выполнить те же операции, но, возможно, в C, например list
) это встроенный тип). Но что еще более важно, если list
действительно связан с какой-либо другой коллекцией, такой как набор или словарь, thingIAmLookingFor in list
будет использовать механизм поиска хеша, который поддерживают такие типы, и будет намного более эффективным, при использовании * Цикл 1017 * заставит Python проходить каждый элемент по очереди.
Обязательный пост-скрипт: list
- ужасное имя для переменной, содержащей список, поскольку он скрывает встроенную функцию list
, которая может сбить вас с толку и любого, кто читает ваш код. Вам гораздо лучше назвать это что-то, что говорит вам о том, что это означает .