Lista jest ważnym kontenerem w Pythonie, ponieważ przechowuje elementy wszystkich typów danych w formie kolekcji. Do programowania dzień po dniu konieczna jest znajomość niektórych operacji na listach. W tym artykule omówiono najszybszy sposób sprawdzenia, czy wartość istnieje na liście lub czy nie jest używana Pyton .
Przykład
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.>
Sprawdź, czy element istnieje na liście w Pythonie
- Za pomocą W Oświadczenie
- Używać pętla
- Za pomocą funkcja dowolna().
- Za pomocą liczyć() funkcjonować
- Za pomocą sortować z bisect_left i ustawić()
- Za pomocą znajdować() metoda
- Za pomocą Lada() funkcjonować
- Za pomocą spróbuj z wyjątkiem bloku
Sprawdź, czy element istnieje na liście za pomocą W oświadczenie
W tej metodzie można łatwo wykorzystać pętlę, która iteruje po wszystkich elementach, aby sprawdzić istnienie elementu docelowego. To najprostszy sposób sprawdzenia istnienia elementu na liście. Python to najbardziej konwencjonalny sposób sprawdzenia, czy element istnieje na liście, czy nie. W ten szczególny sposób zwraca True, jeśli element istnieje na liście, i False, jeśli element nie istnieje na liście. Aby ćwiczyć tę metodę sprawdzania, lista nie musi być sortowana.
status gitaPython3
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')> Wyjście
not exist>
Złożoność czasowa: O(1)
Przestrzeń pomocnicza: O(n), gdzie n jest całkowitą liczbą elementów.
Sprawdź, czy element istnieje na liście, używając pętli
Podany kod Pythona inicjuje listę o nazwietest_list>z pewnymi elementami całkowitymi. Następnie iteruje po każdym elemencie listy, używając afor>pętla. W środku pętla , sprawdza, czy bieżący elementi>jest równa wartości 4 przy użyciu anif>oświadczenie. Jeśli warunek jest spełniony, wypisuje na konsoli opcję Element istnieje. Kod wyświetli komunikat, jeśli liczba 4 jest obecna na liście i w tym przypadku zostanie wydrukowany element istnieje, ponieważ liczba 4 istnieje na liście[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')> Wyjście:
Element Exists>
Złożoność czasowa: NA)
Przestrzeń pomocnicza: O(1)
Sprawdź, czy element istnieje na liście, używając funkcji any().
Osiąga to poprzez wykorzystanie any()>funkcjonować z wyrażeniem generatora. Wyrażenie generatora iteruje po każdym elemencietest_list>i sprawdza, czy pojawia się na liście więcej niż raz. Wynik tego sprawdzenia jest przechowywany w zmiennejresult>. Na koniec kod wypisuje komunikat wskazujący, czy istnieją jakieś zduplikowane elementy, wyświetlając Czy ciąg zawiera dowolny element listy: Prawda, jeśli istnieją duplikaty i Czy ciąg zawiera dowolny element listy: Fałsz, jeśli nie ma duplikatów.
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)))> Wyjście:
Does string contain any list element : True>
Sprawdź, czy element istnieje na liście, używając funkcji count().
Możemy skorzystać z wbudowanego Lista Pythona metoda count(), aby sprawdzić, czy przekazany element istnieje na liście. Jeśli przekazany element istnieje na liście, liczyć() metoda pokaże, ile razy wystąpi na całej liście. Jeśli jest to liczba dodatnia różna od zera, oznacza to, że element istnieje na Liście. Demonstracja sprawdzania istnienia elementów na liście za pomocą liczyć() .
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('Tak, 15 istnieje na liście') else: print('Nie, 15 nie istnieje na liście')> Wyjście:
Checking if 15 exists in list Yes, 15 exists in list>
Sprawdź, czy element istnieje na liście, używając sortowania z bisect_left i set
Konwersja listy na zestaw, a następnie użycie To może być skuteczniejsze niż samo jego używanie. Jednak wydajność jako zaleta ma również pewne wady. Jedną z nich jest to, że kolejność listy nie jest zachowana i jeśli zdecydujesz się na utworzenie dla niej nowej listy, będziesz musiał użyć dodatkowej przestrzeni. Kolejną wadą jest to, że zestaw nie pozwala na duplikację, w związku z czym zduplikowane elementy zostaną usunięte z oryginalnej listy. W konwencjonalnym sposobie wyszukiwania binarnego sprawdzania istnienia elementu lista musi zostać najpierw posortowana i dlatego nie zachowuje kolejności elementów. bisect_left() zwraca pierwsze wystąpienie znalezionego elementu i działa podobnie Dolna granica() w C++ STL.
Notatka: Funkcja bisect określi jedynie pozycję, w której należy wstawić element, ale nie będzie zawierała szczegółów dotyczących tego, czy element jest obecny, czy nie.
rdbm
Demonstracja sprawdzania istnienia elementu na liście za pomocą ustawić() + w i sortować() + 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')> Wyjście:
Checking if 4 exists in list ( using set() + in) : Element Exists Checking if 4 exists in list ( using sort() + bisect_left() ) : Element Exists>
Sprawdź, czy element istnieje na liście, używając metody find().
Dana Pyton kod sprawdza, czy liczba 15 istnieje na liścietest_list>. Konwertuje elementy listy na ciągi znaków i łączy je za pomocą łączników. Następnie korzysta z find()>metoda aby sprawdzić, czy w wynikowym ciągu istnieje podciąg 15. Jeśli zostanie znaleziona liczba 15, zostanie wypisana odpowiedź Tak, na liście znajduje się 15; w przeciwnym razie wypisuje opcję Nie, 15 nie istnieje na liście.
# 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')> Wyjście
Checking if 15 exists in list Yes, 15 exists in list>
Sprawdź, czy element istnieje na liście za pomocą funkcji Counter().
Dostarczony kod Pythona używa Counter> klasa zcollections>moduł do obliczania częstotliwości każdego elementu wtest_list>. Następnie sprawdza, czy częstotliwość liczby 15 jest większa od 0. Jeśli częstotliwość jest różna od zera, oznacza to, że na liście istnieje liczba 15 i zostaje wyświetlony kod Tak, na liście istnieje 15. W przeciwnym wypadku wyświetli się komunikat Nie, 15 nie istnieje na liście. TheCounter>klasa skutecznie zlicza wystąpienia elementów, umożliwiając proste sprawdzenie istnienia.
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('Tak, 15 istnieje na liście') else: print('Nie, 15 nie istnieje na liście')> Wyjście
Yes, 15 exists in list>
Znajdź, jeśli jakiś element istnieje na liście przy użyciu bloku try-except
Dodatkowym sposobem sprawdzenia, czy element istnieje na liście, jest użycie metody indeks() metoda. Ta metoda zwraca indeks pierwszego wystąpienia elementu na liście lub zgłasza błąd ValueError, jeśli elementu nie ma na liście. Aby użyć tej metody, możesz zawinąć wywołanie funkcji Index() w blok try-except, aby przechwycić błąd ValueError i zwrócić False, jeśli wystąpi:
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>
Wyjście
True False>
Złożoność czasowa: O(n), gdzie n jest długością listy. Metoda indeks() iteruje po liście w celu znalezienia elementu, więc złożoność czasowa jest liniowa.
Złożoność przestrzeni :O(1). Takie podejście nie wymaga dodatkowej przestrzeni.
Sprawdź, czy element istnieje na liście, używając funkcji filter().
Podejście krok po kroku
- Zdefiniuj listę moja_lista i ustaw element_to_check.
- Użyj funkcji filter(), aby utworzyć iterator (filtered_elements) zawierający elementy równe element_to_check.
- Konwertuj iterator filtered_elements na listę.
- Ten krok jest konieczny, ponieważ funkcja filter() zwraca iterator. Lista zawiera teraz elementy równe element_to_check.
- Sprawdź, czy lista filtered_list nie jest pusta.
- Jeśli lista nie jest pusta, oznacza to, że element istnieje na oryginalnej liście.
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')> Wyjście
Element exists in the list>
Złożoność czasowa: O(n)
Złożoność przestrzeni pomocniczej: O(n)