logo

Controleer of het element in de lijst in Python voorkomt

De lijst is een belangrijke container in Python, omdat deze elementen van alle gegevenstypen als een verzameling opslaat. Voor dagprogrammering is kennis van bepaalde lijstbewerkingen noodzakelijk. In dit artikel wordt de snelste manier besproken om te controleren of een waarde in een lijst voorkomt of niet wordt gebruikt Python .

Voorbeeld



  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.>

Controleer of een element bestaat in een lijst in Python

Controleer of een element in de lijst bestaat met behulp van de in stelling

Bij deze methode gebruikt men eenvoudig een lus die door alle elementen loopt om het bestaan ​​van het doelelement te controleren. Dit is de eenvoudigste manier om het bestaan ​​van het element in de lijst te controleren. Python is de meest conventionele manier om te controleren of een element in een lijst voorkomt of niet. Deze specifieke manier retourneert True als een element in de lijst bestaat en False als het element niet in de lijst bestaat. De lijst hoeft niet te worden gesorteerd om deze controleaanpak te oefenen.

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')>

Uitvoer
not exist>

Tijdcomplexiteit: O(1)
Hulpruimte: O(n), waarbij n het totale aantal elementen is.

Zoek met behulp van een lus of een element in de lijst voorkomt

De gegeven Python-code initialiseert een lijst met de naamtest_list>met enkele gehele elementen. Vervolgens wordt elk element in de lijst doorlopen met behulp van afor>lus. Binnen in de lus , controleert het of het huidige elementi>is gelijk aan de waarde 4 met behulp van anif>stelling. Als de voorwaarde waar is, wordt Element Exists naar de console afgedrukt. De code geeft het bericht weer als nummer 4 in de lijst aanwezig is, en in dit geval wordt Element Exists afgedrukt omdat nummer 4 in de lijst voorkomt[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')>

Uitgang:

Element Exists>

Tijdcomplexiteit: Op)
Hulpruimte: O(1)

Controleer of een element in de lijst bestaat met behulp van de functie any().

Dit wordt bereikt door gebruik te maken van de any()>functie met een generatorexpressie. De generatorexpressie herhaalt elk elementtest_list>en controleert of het meerdere keren in de lijst voorkomt. Het resultaat van deze controle wordt opgeslagen in de variabeleresult>. Ten slotte drukt de code een bericht af dat aangeeft of er dubbele elementen zijn, met de tekst Bevat string enig lijstelement: True als er duplicaten bestaan ​​en Bevat string enig lijstelement: False als er geen duplicaten zijn.



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)))>

Uitgang:

Does string contain any list element : True>

Zoek of een element in de lijst voorkomt met behulp van de functie count().

We kunnen de ingebouwde gebruiken Python-lijst method, count(), om te controleren of het doorgegeven element in de lijst voorkomt. Als het doorgegeven element in de lijst voorkomt, wordt de graaf() methode toont het aantal keren dat deze in de gehele lijst voorkomt. Als het een positief getal is dat niet nul is, betekent dit dat er een element in de lijst voorkomt. Demonstreren om het bestaan ​​van elementen in de lijst te controleren met behulp van graaf() .

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('Ja, 15 bestaat in de lijst') else: print('Nee, 15 bestaat niet in de lijst')>

Uitgang:

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

Controleer of een element in de lijst voorkomt door te sorteren met bisect_left en set

De lijst omzetten in de set en vervolgens gebruiken Het kan mogelijk efficiënter zijn dan alleen het gebruik ervan. Maar efficiëntie als pluspunt heeft ook bepaalde nadelen. Eén daarvan is dat de volgorde van de lijst niet behouden blijft, en als u ervoor kiest om er een nieuwe lijst voor te maken, zou u extra ruimte nodig hebben. Een ander nadeel is dat de set dubbelhartigheid niet toestaat en dat dubbele elementen dus uit de oorspronkelijke lijst worden verwijderd. Bij de conventionele binaire zoekmanier om het bestaan ​​van elementen te testen, moet de lijst eerst worden gesorteerd en blijft de volgorde van de elementen dus niet behouden. halveren_links() retourneert de eerste keer dat het gevonden element voorkomt en heeft op dezelfde manier gewerkt ondergrens() in C++ STL.

Opmerking: De bisect-functie geeft alleen de positie aan waar het element moet worden ingevoegd, maar niet de details over of het element aanwezig is of niet.

Demonstreren om het bestaan ​​van een element in de lijst te controleren met behulp van set() + in en soort() + halveren_links()

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')>

Uitgang:

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

Controleer of een element in de lijst voorkomt met behulp van de find()-methode

Het gegeven Python code controleert of het nummer 15 in de lijst voorkomttest_list>. Het converteert de elementen van de lijst naar tekenreeksen en voegt ze samen met koppeltekens. Vervolgens gebruikt het de find()>methode om te controleren of de subtekenreeks 15 bestaat in de resulterende tekenreeks. Als er 15 wordt gevonden, wordt Ja, 15 bestaat in de lijst afgedrukt; anders wordt Nee, 15 weergegeven, bestaat niet in de lijst.

Python3
# 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')>

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

Controleer of het element in de lijst voorkomt met behulp van de functie Counter().

De meegeleverde Python-code maakt gebruik van de Counter> klasse uit decollections>module om de frequentie van elk element in de te berekenentest_list>. Vervolgens wordt gecontroleerd of de frequentie van het getal 15 groter is dan 0. Als de frequentie niet nul is, betekent dit dat er 15 in de lijst voorkomt en wordt de code afgedrukt: Ja, 15 bestaat in de lijst. Anders wordt Nee, 15 bestaat niet in de lijst afgedrukt. DeCounter>klasse telt efficiënt het voorkomen van elementen, waardoor een eenvoudige bestaanscontrole mogelijk is.

Python3
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('Ja, 15 bestaat in de lijst') else: print('Nee, 15 bestaat niet in de lijst')>

Uitvoer
Yes, 15 exists in list>

Zoek of een een element bestaat in de lijst met behulp van try-except-blok

Een extra manier om te controleren of een element in een lijst voorkomt, is door de inhoudsopgave() methode. Deze methode retourneert de index van de eerste keer dat het element in de lijst voorkomt, of genereert een ValueError als het element niet in de lijst aanwezig is. Om deze methode te gebruiken, kunt u de aanroep van index() in een try-except-blok plaatsen om de ValueError op te vangen en False te retourneren als deze voorkomt:

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>

Uitvoer
True False>

Tijdcomplexiteit: O(n), waarbij n de lengte van de lijst is. De methode index() doorloopt de lijst om het element te vinden, dus de tijdscomplexiteit is lineair.
Complexiteit van de ruimte : O(1). Deze aanpak vereist geen extra ruimte.

Zoek of een element in de lijst voorkomt met behulp van de functie filter().

Stapsgewijze aanpak

  • Definieer de lijst my_list en Set element_to_check.
  • Gebruik de functie filter() om een ​​iterator (filtered_elements) te maken die elementen bevat die gelijk zijn aan element_to_check.
  • Converteer de iterator filtered_elements naar een lijst.
  • Deze stap is nodig omdat de functie filter() een iterator retourneert. De lijst bevat nu elementen die gelijk zijn aan element_to_check.
  • Controleer of de lijst gefilterde_lijst niet leeg is.
  • Als de lijst niet leeg is, betekent dit dat het element in de oorspronkelijke lijst voorkomt.
Python
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')>

Uitvoer
Element exists in the list>

Tijdcomplexiteit: O(n)

Complexiteit van de hulpruimte: O(n)