Есть ли краткая функция для списков?

Я вижу, что люди используютany собрать другой список, чтобы увидеть, существует ли элемент в списке, но есть ли быстрый способ сделать это ?:

if list.contains(myItem):
    # do something

Ответы на вопрос(4)

Метод спискаindex вернусь-1 если элемент отсутствует, и вернет индекс элемента в списке, если он присутствует. В качестве альтернативы вif С заявлением вы можете сделать следующее:

if myItem in list:
    #do things

Вы также можете проверить, нет ли элемента в списке, с помощью следующего оператора if:

if myItem not in list:
    #do things
 MondKin28 мар. 2015 г., 06:33
index Метод не возвращает -1, если элемент отсутствует, он выдаетValueError исключение.

True если список содержит любое количество вхождений элемента, илиFalse если он не содержит вхождений или вообще ничего. С помощьюnext(...) возвращает значение по умолчанию (False) и означает, что он должен работать значительно быстрее, чем выполнение полного списка.

list_does_contain = next((True for item in list_to_test if item == test_item), False)

 rodrigorf05 февр. 2018 г., 19:15
В моем случае у меня есть список объектов с именем Category, и мне нужно проверить его только для свойства Link, так что в моем случае это решение подходит лучше. Спасибо
 somebody07 апр. 2018 г., 03:16
any(item == test_item for item in list_to_test) будет работать тоже, я думаю?

что сказали другие, вам также может быть интересно узнать, чтоin делает, чтобы позвонитьlist.__contains__ метод, который вы можете определить для любого класса, который вы пишете, и который может стать чрезвычайно удобным для использования Python в полной мере.

Глупое использование может быть:

>>> class ContainsEverything:
    def __init__(self):
        return None
    def __contains__(self, *elem, **k):
        return True


>>> a = ContainsEverything()
>>> 3 in a
True
>>> a in a
True
>>> False in a
True
>>> False not in a
False
>>>         
Решение Вопроса

Вы можете использовать этот синтаксис:

if myItem in list:
    # do something

Также обратный оператор:

if myItem not in list:
    # do something

Это'S отлично работает для списков, кортежей, наборов и диктовок (проверьте ключи).

Заметка что это операция O (n) в списках и кортежах, но операция O (1) в множествах и диктатах.

 Tillson16 мая 2019 г., 04:32
Обратите внимание, что если выЕсли сравнивать символы, это без учета регистра.
 Alex F28 февр. 2018 г., 11:03
Осторожно! Это соответствует, в то время как это очень вероятно, что вы не ожидали:o='--skip'; o in ("--skip-ias"); # returns True !
 Blckknght10 июн. 2018 г., 10:31
@AlexF: это соответствует, потому что("--skip-ias") это не кортеж, а строка (круглые скобки ничего не делают, как(1) это просто целое число). Если вам нужен 1-кортеж, вам нужно добавить запятую после одного элемента:("--skip-ias",) (или же(1,)).
 Daniel Möller18 авг. 2017 г., 18:20
Если список содержит пустые массивы, будет ли это проверять наличие пустых экземпляров или значений внутри пустых экземпляров?

Ваш ответ на вопрос