Список є важливим контейнером у Python, оскільки він зберігає елементи всіх типів даних як колекцію. Знання певних операцій зі списками є необхідним для щоденного програмування. У цій статті розглядається найшвидший спосіб перевірити, чи існує значення в списку чи не використовується Python .
приклад
стержень панди
Input: test_list = [1, 6, 3, 5, 3, 4] 3 # Check if 3 exist or not. Output: True Explanation: The output is True because the element we are looking is exist in the list.>
Перевірте, чи існує елемент у списку в Python
- Використання в Заява
- Використовуючи a петля
- Використання функція any().
- Використання рахувати() функція
- Використання сортувати з bisect_left і набір()
- Використання знайти() метод
- Використання Лічильник() функція
- Використання блок спроби, крім
Перевірте, чи існує елемент у списку за допомогою в заява
У цьому методі можна легко використовувати цикл, який повторює всі елементи, щоб перевірити існування цільового елемента. Це найпростіший спосіб перевірити наявність елемента в списку. Python є найбільш звичайним способом перевірити, чи існує елемент у списку чи ні. Цей конкретний спосіб повертає True, якщо елемент існує в списку, і False, якщо елемента немає в списку. Щоб практикувати цей підхід перевірки, список не потрібно сортувати.
Python3 lst=[ 1, 6, 3, 5, 3, 4 ] #checking if element 7 is present # in the given list or not i=7 # if element present then return # exist otherwise not exist if i in lst: print('exist') else: print('not exist')> Вихід
not exist>
Часова складність: О(1)
Допоміжний простір: O(n), де n – загальна кількість елементів.
Знайти, чи існує елемент у списку за допомогою циклу
Наведений код Python ініціалізує список з іменемtest_list>з деякими цілими елементами. Потім він перебирає кожен елемент у списку за допомогою afor>петля. Всередині петля , він перевіряє, чи поточний елементi>дорівнює значенню 4 за допомогою anif>заява. Якщо умова виконується, на консолі друкується Element Exists. Код виведе повідомлення, якщо номер 4 присутній у списку, і в цьому випадку буде надруковано Елемент існує, оскільки число 4 існує в списку[1, 6, 3, 5, 3, 4]>.
Python3
# Initializing list test_list = [1, 6, 3, 5, 3, 4] # Checking if 4 exists in list for i in test_list: if(i == 4): print('Element Exists')> Вихід:
Element Exists>
Часова складність: O(n)
Допоміжний простір: О(1)
Перевірте, чи існує елемент у списку за допомогою функції any().
Це досягається шляхом використання any()>функція з генераторним виразом. Вираз генератора повторює кожен елементtest_list>і перевіряє, чи з’являється він у списку більше одного разу. Результат цієї перевірки зберігається в зміннійresult>. Нарешті, код друкує повідомлення про те, чи є дубльовані елементи, показуючи «Чи містить рядок будь-який елемент списку: True, якщо дублікати існують», і «Чи рядок містить будь-який елемент списку: False», якщо дублікатів немає.
Python3
# Initializing list 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)))> Вихід:
Does string contain any list element : True>
Дізнайтеся, чи існує елемент у списку за допомогою функції count().
Ми можемо використовувати вбудований Список Python метод count(), щоб перевірити, чи існує переданий елемент у списку. Якщо переданий елемент існує в списку, то рахувати() метод покаже, скільки разів він зустрічається у всьому списку. Якщо це додатне число, відмінне від нуля, це означає, що елемент існує в списку. Демонстрація для перевірки наявності елементів у списку за допомогою рахувати() .
Python3 # Initializing list test_list = [10, 15, 20, 7, 46, 2808] print('Checking if 15 exists in list') # number of times element exists in list exist_count = test_list.count(15) # checking if it is more than 0 if exist_count>0: print('Так, 15 існує в списку') else: print('Ні, 15 не існує в списку')> Вихід:
Checking if 15 exists in list Yes, 15 exists in list>
Перевірте, чи існує елемент у списку, використовуючи sort з bisect_left і set
Перетворення списку в набір і подальше використання це може бути ефективнішим, ніж просто його використання. Але ефективність як плюс має і певні мінуси. Один із них полягає в тому, що порядок списку не зберігається, і якщо ви вирішите створити для нього новий список, вам знадобиться використати додатковий простір. Іншим недоліком є те, що набір не допускає дублювання, і, отже, повторювані елементи будуть видалені з вихідного списку. У звичайному способі бінарного пошуку перевірки існування елемента, отже, список має бути спочатку відсортований і, отже, не зберігає порядок елементів. bisect_left() повертає перше входження елемента, який потрібно знайти та працював аналогічно нижня_межа() у C++ STL.
Примітка: Функція bisect вказує лише позицію, куди потрібно вставити елемент, але не вказує деталі про те, присутній елемент чи ні.
що таке rom
Демонстрація для перевірки наявності елемента в списку за допомогою набір() + в і sort() + bisect_left()
Python3 from bisect import bisect_left ,bisect # Initializing list 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) : ') # 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() ) : ') # 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')> Вихід:
Checking if 4 exists in list ( using set() + in) : Element Exists Checking if 4 exists in list ( using sort() + bisect_left() ) : Element Exists>
Перевірте, чи існує елемент у списку за допомогою методу find().
Дане Python код перевіряє, чи існує число 15 у спискуtest_list>. Він перетворює елементи списку на рядки та об’єднує їх дефісами. Потім він використовує find()>метод щоб перевірити, чи існує підрядок 15 у результуючому рядку. Якщо знайдено 15, друкується Так, 15 існує в списку; інакше він друкує Ні, 15 не існує в списку.
винятки javaPython3
# Initializing list 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')> Вихід
Checking if 15 exists in list Yes, 15 exists in list>
Перевірте, чи існує елемент у списку за допомогою функції Counter().
Наданий код Python використовує Counter> класу від стcollections>модуль для розрахунку частоти кожного елемента вtest_list>. Потім він перевіряє, чи частота числа 15 більша за 0. Якщо частота відмінна від нуля, це означає, що 15 існує в списку, і код друкує Так, 15 існує в списку. В іншому випадку він друкує Ні, 15 не існує в списку. TheCounter>клас ефективно підраховує входження елементів, дозволяючи здійснити пряму перевірку існування.
from collections import Counter test_list = [10, 15, 20, 7, 46, 2808] # Calculating frequencies frequency = Counter(test_list) # If the element has frequency greater than 0 # then it exists else it doesn't exist if(frequency[15]>0): print('Так, 15 існує в списку') else: print('Ні, 15 не існує в списку')> Вихід
Yes, 15 exists in list>
Знайдіть, якщо ан ан елемент існує в списку за допомогою блоку try-except
Ще одним підходом до перевірки наявності елемента в списку є використання індекс() метод. Цей метод повертає індекс першого входження елемента в список або викидає ValueError, якщо елемента немає в списку. Щоб використовувати цей метод, ви можете обернути виклик index() у блок try-except, щоб переловити помилку ValueError і повернути False, якщо вона станеться:
Python3 def element_exists(lst, element): # Try to get the index of the element in the list try: lst.index(element) # If the element is found, return True return True # If a ValueError is raised, the element is not in the list except ValueError: # Return False in this case return False #Test the function test_list = [1, 6, 3, 5, 3, 4] print(element_exists(test_list, 3)) # prints True print(element_exists(test_list, 7)) # prints False #This code is contributed by Edula Vinay Kumar Reddy>
Вихід
True False>
Часова складність: O(n), де n - довжина списку. Метод index() повторює список, щоб знайти елемент, тому часова складність є лінійною.
Космічна складність : O(1). Такий підхід не потребує додаткового простору.
Знайдіть, чи існує елемент an у списку за допомогою функції filter().
Поетапний підхід
- Визначте список my_list і Set element_to_check.
- Використовуйте функцію filter(), щоб створити ітератор (filtered_elements), який містить елементи, рівні елементу_to_check.
- Перетворіть ітератор filtered_elements на список.
- Цей крок необхідний, оскільки функція filter() повертає ітератор. Тепер список містить елементи, що дорівнюють element_to_check.
- Перевірте, чи список filtered_list не порожній.
- Якщо список не порожній, це означає, що елемент існує у вихідному списку.
my_list = [1, 2, 3, 4, 5] element_to_check = 3 # Use filter to create an iterator of elements equal to the target element filtered_elements = filter(lambda x: x == element_to_check, my_list) # Convert the iterator to a list and check if it's not empty if list(filtered_elements): print('Element exists in the list') else: print('Element does not exist in the list')> Вихід
Element exists in the list>
Часова складність: O(n)
Складність допоміжного простору: O(n)