Как найти есть ли список

Время чтения 3 мин.

Существует несколько способов проверки наличия элемента в списке в Python:

  1. Использование метода index() для поиска индекса элемента в списке.
  2. Использование оператора in для проверки наличия элемента в списке.
  3. Использование метода count() для подсчета количества вхождений элемента.
  4. Использование функции any().
  5. Функция filter() создает новый список элементов на основе условий.
  6. Применение цикла for.

Содержание

  1. Способ 1: Использование метода index()
  2. Способ 2: Использование «оператора in»
  3. Способ 3: Использование функции count()
  4. Синтаксис
  5. Пример
  6. Способ 4: использование понимания списка с any()
  7. Способ 5: Использование метода filter()
  8. Способ 6: Использование цикла for

Способ 1: Использование метода index()

Чтобы найти элемент в списке Python, вы можете использовать метод list index(). Список index() — это встроенный метод, который ищет элемент в списке и возвращает его индекс.

Если один и тот же элемент присутствует более одного раза, метод возвращает индекс первого вхождения элемента.

Индекс в Python начинается с 0, а не с 1. Таким образом, через индекс мы можем найти позицию элемента в списке.

streaming = [‘netflix’, ‘hulu’, ‘disney+’, ‘appletv+’]

index = streaming.index(‘disney+’)

print(‘The index of disney+ is:’, index)

Выход

The index of disney+ is: 2

Метод list.index() принимает единственный аргумент, элемент, и возвращает его позицию в списке.

Способ 2: Использование «оператора in»

Используйте оператор in, чтобы проверить, есть ли элемент в списке.

main_list = [11, 21, 19, 46]

if 19 in main_list:

  print(«Element is in the list»)

else:

  print(«Element is not in the list»)

Выход

Вы можете видеть, что элемент «19» находится в списке. Вот почему оператор in возвращает True.

Если вы проверите элемент «50», то оператор in вернет False и выполнит оператор else.

Способ 3: Использование функции count()

Метод list.count() возвращает количество вхождений данного элемента в списке.

Синтаксис

Метод count() принимает единственный элемент аргумента: элемент, который будет подсчитан.

Пример

main_list = [11, 21, 19, 46]

count = main_list.count(21)

if count > 0:

  print(«Element is in the list»)

else:

  print(«Element is not in the list»)

Выход

Мы подсчитываем элемент «21», используя список в этой функции example.count(), и если он больше 0, это означает, что элемент существует; в противном случае это не так.

Способ 4: использование понимания списка с any()

Any() — это встроенная функция Python, которая возвращает True, если какой-либо элемент в итерируемом объекте имеет значение True. В противном случае возвращается False.

main_list = [11, 21, 19, 46]

output = any(item in main_list for item in main_list if item == 22)

print(str(bool(output)))

Выход

Вы можете видеть, что в списке нет «22». Таким образом, нахождение «22» в списке вернет False функцией any(). Если функция any() возвращает True, элемент в списке существует.

Способ 5: Использование метода filter()

Метод filter() перебирает элементы списка, применяя функцию к каждому из них.

Функция filter() возвращает итератор, который перебирает элементы, когда функция возвращает значение True.

main_list = [11, 21, 19, 46]

filtered = filter(lambda element: element == 19, main_list)

print(list(filtered))

Выход

В этом примере мы используем функцию filter(), которая принимает функцию и перечисляет ее в качестве аргумента.

Мы использовали лямбда-функцию, чтобы проверить, совпадает ли входной элемент с любым элементом из списка, и если это так, он вернет итератор. Чтобы преобразовать итератор в список в Python, используйте функцию list().

Мы использовали функцию list() для преобразования итератора, возвращаемого функцией filter(), в список.

Способ 6: Использование цикла for

Вы можете узнать, находится ли элемент в списке, используя цикл for в Python.

main_list = [11, 21, 19, 46]

for i in main_list:

  if(i == 46):

    print(«Element Exists»)

Выход

В этом примере мы прошли список элемент за элементом, используя цикл for, и если элемент списка совпадает с входным элементом, он напечатает «Element exists».

В Python списки играют роль контейнеров, которые могут хранить любые типы данных в виде коллекции. В 32-битной системе список может содержать до 536 870 912 элементов. Поэтому иногда бывает трудно определить, есть ли определенный элемент в списке.

Проверка наличия элемента в списке является одной из основных операций со списком в Python. Не удивительно, что подобные проверки можно осуществлять разными способами. В этой статье мы рассмотрим некоторые из них.

От редакции Pythonist: если хотите побольше узнать о списках, почитайте статью «Списки в Python: полное руководство для начинающих».

Проверяем, есть ли элемент в списке, при помощи оператора in

Самый удобный способ проверить, содержит ли список определенный элемент, — это воспользоваться оператором in. Этот оператор возвращает True, если элемент есть, и False, если его нет. При этом список не сортируется.

В приведенном ниже примере показано, как применяется оператор in в условном блоке:

name_list = ["Adam", "Dean", "Harvey", "Mick", "John"]

if "John" in name_list:
    print("'John' is found in the list")
else:
    print("'John' is not found in the list")

if 'Ned' in name_list:
    print("'Ned' is found in the list")
else:
    print("'Ned' is not found in the list")


# Результат:
# 'John' is found in the list
# 'Ned' is not found in the list

От редакции Pythonist: об операторе in, его паре not in и прочих операторах можно почитать в статье «Операторы в Python».

Использование цикла for для проверки наличия элемента в списке

Проверить, есть ли элемент в списке, можно и при помощи цикла. Этот способ также довольно прост. Цикл будет по очереди сопоставлять каждый элемент списка с искомым элементом и остановится только в случае совпадения или полного отсутствия совпадения. Пример:

name_list = ["Adam", "Dean", "Harvey", "Mick", "John"]
for name in name_list:
    if name == 'Adam':
        print("Found the element")


# Результат:
# Found the element

Как проверить, есть ли элемент в списке, при помощи функции any()

Встроенная функция any() проверяет, оценивается ли хоть один элемент в последовательности как True.

С помощью этой функции мы можем проверить, есть ли в строке подстрока, совпадающая с каким-нибудь элементом списка.

Приведенный ниже пример показывает, как работает функция any(). Мы проверяем, содержит ли строка «Adam lives in New York» какое-нибудь из имен, хранящихся в списке из первой строки.

name_list = ["Adam", "Dean", "Harvey", "Mick", "John"]
string = "Adam lives in New York"

print("The original list is: " + str(name_list))
print("The original string is: " + string)

result = any(item in string for item in name_list)

print("Does the string contain any name from the list: " + str(result))


# Результат:
# The original list is: ['Adam', 'Dean', 'Harvey', 'Mick', 'John']
# The original string is: Adam lives in New York
# Does the string contain any name from the list: True

Проверяем наличие элемента в списке при помощи метода count()

Встроенный метод count() возвращает количество вхождений указанного элемента в списке. Если элемента в списке нет, то count() вернет 0. Если возвращается целое положительное число больше 0, это означает, что список содержит элемент.

name_list = ["Adam", "Dean", "Harvey", "Mick", "John"]
result = name_list.count("Harvey")
if result > 0:
    print("Harvey exists in the list")
else:
    print("Harvey does not exist in the list")


# Результат:
# Harvey exists in the list

Итоги

В этой статье мы рассмотрели на примерах, как проверить, есть ли элемент в списке. Для проверок мы использовали оператор in, цикл for, методы any() и count().

Перевод статьи «Python list contains: How to check if an item exists in list?».

The list is an important container in python as it stores elements of all the data types as a collection. Knowledge of certain list operations is necessary for day-day programming. This article discusses the Fastest way to check if a value exists in a list or not using Python.

Example:

list = test_list = [1, 6, 3, 5, 3, 4]
Input: 3  # Check if 3 exist or not.
Output: True
Input: 7  # Check if 7 exist or not.
Output: False

Method 1: Naive Method

In the Naive method, one easily uses a loop that iterates through all the elements to check the existence of the target element. This is the simplest way to check the existence of the element in the list. Python is the most conventional way to check if an element exists in a list or not. This particular way returns True if an element exists in the list and False if the element does not exist in the list. The list need not be sorted to practice this approach of checking.

Example 1: Check if an element exists in the list using the if-else statement

Python3

lst=[ 1, 6, 3, 5, 3, 4 ]

i=7

if i in lst:

    print("exist")

else:

    print("not exist")

Time Complexity: O(1)
Auxiliary Space: O(n), where n is total number of elements.

Example 2: Check if an element exists in the list using a loop 

Python3

test_list = [1, 6, 3, 5, 3, 4]

for i in test_list:

    if(i == 4):

        print("Element Exists")

Output:

Element Exists

Time Complexity: O(n)
Auxiliary Space: O(1)

Example 3: Check if an element exists in the list using “in” 

Python3

test_list = [1, 6, 3, 5, 3, 4]

if (4 in test_list):

    print("Element Exists")

Output:

Element Exists

Example 4: Check if an element exists in the list using any() function

Python3

test_list = [1, 6, 3, 5, 3, 4]

result = any(item in test_list for item in test_list)

print("Does string contain any list element : " +str(bool(result)))

Output:

Does string contain any list element : True

Method 2: Check if an element exists in the list using count()

We can use the in-built python List method, count(), to check if the passed element exists in the List. If the passed element exists in the List, the count() method will show the number of times it occurs in the entire list. If it is a non-zero positive number, it means an element exists in the List. Demonstrating to check the existence of elements in the list using count().

Python3

test_list = [10, 15, 20, 7, 46, 2808]

print("Checking if 15 exists in list")

exist_count = test_list.count(15)

if exist_count > 0:

    print("Yes, 15 exists in list")

else:

    print("No, 15 does not exists in list")

Output:

Checking if 15 exists in list
Yes, 15 exists in list

Method 3: Check if an element exists in the list using sort + bisect_left + set

Converting the list into the set and then using it can possibly be more efficient than only using it. But having efficiency for a plus also has certain negatives. One among them is that the order of the list is not preserved, and if you opt to take a new list for it, you would require to use extra space. Another drawback is that set disallows duplicity and hence duplicate elements would be removed from the original list. In the conventional binary search way of testing element existence, hence list has to be sorted first and hence does not preserve the element ordering. bisect_left() returns the first occurrence of the element to be found and has worked similarly to lower_bound() in C++ STL.

Note: The bisect function will only state the position of where to insert the element but not the details about if the element is present or not.

Demonstrating to check existence of element in list using set() + in and sort() + bisect_left()

Python3

from bisect import bisect_left ,bisect

test_list_set = [ 1, 6, 3, 5, 3, 4 ]

test_list_bisect = [ 1, 6, 3, 5, 3, 4 ]

print("Checking if 4 exists in list ( using set() + in) : ")

test_list_set = set(test_list_set)

if 4 in test_list_set :

    print ("Element Exists")

print("Checking if 4 exists in list ( using sort() + bisect_left() ) : ")

test_list_bisect.sort()

if bisect_left(test_list_bisect, 4)!=bisect(test_list_bisect, 4):

    print ("Element Exists")

else:

    print("Element doesnt exist")

Output:

Checking if 4 exists in list ( using set() + in) : 
Element Exists
Checking if 4 exists in list ( using sort() + bisect_left() ) : 
Element Exists

Method 4: Using find() method

Python3

test_list = [10, 15, 20, 7, 46, 2808]

print("Checking if 15 exists in list")

x=list(map(str,test_list))

y="-".join(x)

if y.find("15") !=-1:

    print("Yes, 15 exists in list")

else:

    print("No, 15 does not exists in list")

Output

Checking if 15 exists in list
Yes, 15 exists in list

Method 5: Using Counter() function

Below is the implementation:

Python3

from collections import Counter

test_list = [10, 15, 20, 7, 46, 2808]

frequency = Counter(test_list)

if(frequency[15] > 0):

    print("Yes, 15 exists in list")

else:

    print("No, 15 does not exists in list")

Output

Yes, 15 exists in list

Method 6: Using try-except block

One additional approach to check if an element exists in a list is to use the index() method. This method returns the index of the first occurrence of the element in the list, or throws a ValueError if the element is not present in the list. To use this method, you can wrap the call to index() in a try-except block to catch the ValueError and return False if it occurs:

Python3

def element_exists(lst, element):

  try:

    lst.index(element)

    return True

  except ValueError:

    return False

test_list = [1, 6, 3, 5, 3, 4]

print(element_exists(test_list, 3))

print(element_exists(test_list, 7))

Time complexity: O(n), where n is the length of the list. The index() method iterates through the list to find the element, so the time complexity is linear.

Auxiliary Space: O(1). This approach does not require any additional space.

Approach 7: Using Set
Time complexity: O(1) average case as checking for an element in a set takes constant time on average.
Space complexity: O(n) as it creates a new set from the list to store its elements.

Python3

def check_element_exists_set(lst, target):

  return target in set(lst)

test_list = [1, 6, 3, 5, 3, 4]

target = 3

print("Exists using set: ", check_element_exists_set(test_list, target))

Output

Exists using set:  True

Last Updated :
22 Feb, 2023

Like Article

Save Article

На чтение 4 мин Просмотров 79.5к. Опубликовано 17.03.2021

Сегодня я расскажу, как проверить, содержит ли список элемент с помощью разных операторов в Python.

Содержание

  1. Используя цикл for
  2. Используя оператор in
  3. Используя оператор not in
  4. С помощью лямбда функции
  5. Используя функцию any
  6. Используя метод count
  7. Заключение

Используя цикл for

В качестве примера, я буду использовать список строк, содержащих несколько животных:

animals = ['Dog', 'Cat', 'Bird', 'Fish']

Простой и рудиментарный метод проверки, содержит ли список элемент: наш метод проходит через элемент и проверяет, соответствует ли элемент, на котором мы находимся, тому, который мы ищем. Давайте для этого воспользуемся циклом for:

for animal in animals:
     if animal == 'Bird':
         print('Chirp!')

Вывод программы:

Используя оператор in

Теперь более лаконичным подходом было бы использование встроенного оператора in, но с оператором if вместо оператора for. В паре с if он возвращает True, если элемент существует в последовательности или нет. Синтаксис оператора in выглядит следующим образом:

Используя этот оператор, мы можем сократить наш предыдущий код в один оператор:

if 'Bird' in animals: print('Chirp')

Вывод программы:

Этот подход имеет ту же эффективность, что и цикл for, поскольку оператор in, используемый таким образом, вызывает функцию list.__contains__, которая по своей сути циклически проходит через список — хотя это гораздо читабельнее.

Используя оператор not in

Вы можете использовать оператор not in, который является логической противоположностью оператору in. Он возвращает True, если элемент не присутствует в последовательности.

Давайте перепишем предыдущий пример кода, чтобы использовать оператор not in:

if 'Bird' not in animals: 
    print('Chirp')

Запуск этого кода ничего не даст, так как Bird присутствует в нашем списке.

Но если мы попробуем это с Wolf:

if 'Wolf' not in animals: 
    print('Howl')

Вывод программы:

С помощью лямбда функции

Еще один способ проверить, присутствует ли элемент — отфильтровать все, кроме этого элемента, точно так же, как просеять песок и проверить, остались ли в конце какие-нибудь раковины. Встроенный метод filter() принимает в качестве аргументов лямбда-функцию и список. Здесь мы можем использовать лямбда-функцию для проверки нашей строки «Bird» в списке animals.

Затем мы оборачиваем результаты в list(), так как метод filter() возвращает объект filter, а не результаты. Если мы упакуем объект filter в список, он будет содержать элементы, оставшиеся после фильтрации:

retrieved_elements = list(filter(lambda x: 'Bird' in x, animals)) print(retrieved_elements)

Вывод программы:

Сейчас этот подход не самый эффективный. Это довольно медленнее, чем предыдущие три подхода, которые мы использовали. Сам метод filter() эквивалентен функции генератора:

(item for item in iterable if function(item))

Замедление производительности этого кода, помимо всего прочего, происходит из-за того, что мы преобразуем результаты в список в конце концов, а также выполняем функцию для элемента на каждой итерации.

Используя функцию any

Еще один отличный встроенный подход заключается в использовании функции any, которая является просто вспомогательной функцией, которая проверяет, есть ли какие-либо (по крайней мере 1) экземпляры элемента в списке. Он возвращает True или False в зависимости от наличия или отсутствия элемента:

if any(element in 'Bird' for element in animals):
     print('Chirp')

Поскольку это приводит к True, наш оператор print сработает:

Этот подход также является эффективным способом проверки наличия элемента. Он ничем не уступает первым трём проверкам!

Используя метод count

Наконец, мы можем использовать функцию count, чтобы проверить, присутствует ли элемент или нет:

Эта функция возвращает вхождение данного элемента в последовательность. Если он больше 0, мы можем быть уверены, что данный элемент находится в списке.

Давайте проверим результаты функции count:

if animals.count('Bird') > 0:
     print("Chirp")

Функция count по своей сути зацикливает список, чтобы проверить количество вхождений, и этот код приводит к запуску print:

Заключение

В этой статье я рассмотрел несколько способов, как проверить, присутствует ли элемент в списке или нет. Я использовал цикл for, операторы in и not in, а также методы filter, any и count.

Автор оригинала: Guest Contributor.

Вступление

В этом уроке мы рассмотрим как проверить, содержит ли список элемент или значение в Python . Мы будем использовать список строк, содержащих несколько животных:

animals = ['Dog', 'Cat', 'Bird', 'Fish']

Проверьте, Содержит Ли Список Элемент С Циклом for

Простой и рудиментарный метод проверки, содержит ли список элемент, проходит через него и проверяет, соответствует ли элемент, на котором мы находимся, тому, который мы ищем. Давайте используем для этого цикл for :

for animal in animals:
    if animal == 'Bird':
        print('Chirp!')

Этот код приведет к:

Проверьте, Содержит Ли Список Элемент С Оператором in

Теперь более лаконичным подходом было бы использование встроенного оператора in , но с оператором if вместо оператора for . В паре с if он возвращает True если элемент существует в последовательности или нет. Синтаксис оператора in выглядит следующим образом:

Используя этот оператор, мы можем сократить наш предыдущий код в один оператор:

if 'Bird' in animals: print('Chirp')

Этот фрагмент кода выведет следующее:

Этот подход имеет ту же эффективность, что и цикл for , поскольку оператор in , используемый таким образом, вызывает функцию list.__contains__ , которая по своей сути циклически проходит через список – хотя это гораздо более читабельно.

Проверьте, Содержит Ли Список Элемент С Оператором not in

Напротив, мы можем использовать оператор not in , который является логической противоположностью оператору in . Он возвращает True , если элемент не присутствует в последовательности.

Давайте перепишем предыдущий пример кода, чтобы использовать оператор not in :

if 'Bird' not in animals: print('Chirp')

Запуск этого кода ничего не даст, так как Bird присутствует в нашем списке.

Но если мы попробуем это сделать с Волком :

if 'Wolf' not in animals: print('Howl')

Этот код приводит к:

Проверьте, Содержит Ли Список Элемент С Лямбдой

Еще один способ проверить, присутствует ли элемент, – отфильтровать все, кроме этого элемента, точно так же, как просеять песок и проверить, остались ли в конце какие-нибудь раковины. Встроенный метод filter() принимает в качестве аргументов лямбда-функцию и список. Здесь мы можем использовать лямбда-функцию для проверки нашей строки 'Bird' в списке animals .

Затем мы оборачиваем результаты в list () , так как метод filter() возвращает объект filter , а не результаты. Если мы упакуем объект filter в список, он будет содержать элементы, оставшиеся после фильтрации:

retrieved_elements = list(filter(lambda x: 'Bird' in x, animals))
print(retrieved_elements)

Этот код приводит к:

Сейчас этот подход не самый эффективный. Это довольно медленнее, чем предыдущие три подхода, которые мы использовали. Сам метод filter() эквивалентен функции генератора:

(item for item in iterable if function(item))

Замедление производительности этого кода, помимо всего прочего, происходит из-за того, что мы преобразуем результаты в список в конце концов, а также выполняем функцию для элемента на каждой итерации.

Проверьте, Содержит ли Список Элемент, Используя любой()

Еще один отличный встроенный подход заключается в использовании функции any () , которая является просто вспомогательной функцией, которая проверяет, есть ли any (по крайней мере 1) экземпляры элемента в списке. Он возвращает True или False в зависимости от наличия или отсутствия элемента:

if any(element in 'Bird' for element in animals):
    print('Chirp')

Поскольку это приводит к True , наш оператор print() называется:

Этот подход также является эффективным способом проверки наличия элемента. Он так же эффективен, как и первые три.

Проверьте, Содержит Ли Список Элемент, Используя count()

Наконец, мы можем использовать функцию count () , чтобы проверить, присутствует ли элемент или нет:

Эта функция возвращает вхождение данного элемента в последовательность. Если он больше 0, мы можем быть уверены, что данный элемент находится в списке.

Давайте проверим результаты функции count() :

if animals.count('Bird') > 0:
    print("Chirp")

Функция count() по своей сути зацикливает список для проверки количества вхождений, и этот код приводит к:

Вывод

В этом уроке мы рассмотрели несколько способов проверить, присутствует ли элемент в списке или нет. Мы использовали операторы for loop, in и not in , а также методы filter() , any() и count () .

Понравилась статья? Поделить с друзьями:

Не пропустите также:

  • Как найти игру энгри бердз
  • Вам поручено подготовить развернутый ответ по теме банк как финансовый институт составьте план
  • Как найти способ заработать деньги
  • Как найти процент данного числа правило
  • Как найти приватный сервер standoff 2

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии