Listen er en viktig beholder i Python ettersom den lagrer elementer av alle datatypene som en samling. Kunnskap om visse listeoperasjoner er nødvendig for dag-dag programmering. Denne artikkelen diskuterer den raskeste måten å sjekke om en verdi finnes i en liste eller ikke Python .
Eksempel
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.>
Sjekk om et element finnes i en liste i Python
- Ved hjelp av i Uttalelse
- Bruker en Løkke
- Ved hjelp av hvilken som helst() funksjon
- Ved hjelp av telle() funksjon
- Ved hjelp av sortere med bisect_left og sett()
- Ved hjelp av finne() metode
- Ved hjelp av Disk() funksjon
- Ved hjelp av prøv-unntatt blokk
Sjekk om et element finnes i listen ved å bruke i uttalelse
I denne metoden bruker man enkelt en loop som itererer gjennom alle elementene for å sjekke eksistensen av målelementet. Dette er den enkleste måten å sjekke eksistensen av elementet i listen. Python er den mest konvensjonelle måten å sjekke om et element finnes i en liste eller ikke. Denne spesielle måten returnerer True hvis et element finnes i listen og False hvis elementet ikke finnes i listen. Listen trenger ikke sorteres for å praktisere denne tilnærmingen til kontroll.
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')> Produksjon
not exist>
Tidskompleksitet: O(1)
Hjelpeplass: O(n), hvor n er det totale antallet elementer.
2 til 1 multiplekser
Finn om et element finnes i listen ved hjelp av en løkke
Den gitte Python-koden initialiserer en liste med navntest_list>med noen heltallselementer. Den itererer deretter gjennom hvert element i listen ved å bruke enfor>Løkke. Inne i Løkke , sjekker den om det gjeldende elementeti>er lik verdien 4 ved å bruke anif>uttalelse. Hvis betingelsen er sann, skriver den ut Element Exists til konsollen. Koden vil sende ut meldingen hvis tallet 4 er til stede i listen, og i dette tilfellet vil Element Exists bli skrevet ut siden tallet 4 finnes i listen[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')> Produksjon:
Element Exists>
Tidskompleksitet: På)
Hjelpeplass: O(1)
Sjekk om et element finnes i listen ved å bruke en hvilken som helst() funksjon
Den oppnår dette ved å bruke any()>funksjon med et generatoruttrykk. Generatoruttrykket itererer gjennom hvert elementtest_list>og sjekker om den vises mer enn én gang i listen. Resultatet av denne sjekken lagres i variabelenresult>. Til slutt skriver koden ut en melding som indikerer om det er noen dupliserte elementer, og viser Inneholder strengen et listeelement: Sant hvis duplikater eksisterer og Inneholder strengen et listeelement: False hvis det ikke er noen duplikater.
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)))> Produksjon:
Does string contain any list element : True>
Finn om et element finnes i listen ved å bruke count()-funksjonen
Vi kan bruke den innebygde Python-liste metode, count(), for å sjekke om det beståtte elementet finnes i listen. Hvis det beståtte elementet finnes i listen, vil telle() metoden vil vise antall ganger den forekommer i hele listen. Hvis det er et positivt tall som ikke er null, betyr det at det finnes et element i listen. Demonstrerer for å sjekke eksistensen av elementer i listen ved å bruke telle() .
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 finnes i listen') else: print('Nei, 15 finnes ikke i listen')> Produksjon:
Checking if 15 exists in list Yes, 15 exists in list>
Sjekk om et element finnes i listen ved å bruke sorter med bisect_left og set
Konvertere listen til settet og deretter bruke den kan muligens være mer effektivt enn å bare bruke det. Men å ha effektivitet som et pluss har også visse negative sider. En av dem er at rekkefølgen på listen ikke er bevart, og hvis du velger å ta en ny liste for den, må du bruke ekstra plass. En annen ulempe er at sett ikke tillater duplisitet, og dupliserte elementer vil derfor bli fjernet fra den opprinnelige listen. I den konvensjonelle binære søkemetoden for å teste eksistensen av elementer, må listen derfor sorteres først og bevarer derfor ikke elementrekkefølgen. bisect_left() returnerer den første forekomsten av elementet som skal finnes og har fungert på samme måte som nedre_grense() i C++ STL.
np prikk
Merk: Halveringsfunksjonen vil kun angi posisjonen til hvor elementet skal settes inn, men ikke detaljene om elementet er til stede eller ikke.
Demonstrerer for å sjekke eksistensen av element i listen ved hjelp av sett() + i og sortere() + 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')> Produksjon:
vikas diviakirti
Checking if 4 exists in list ( using set() + in) : Element Exists Checking if 4 exists in list ( using sort() + bisect_left() ) : Element Exists>
Sjekk om et element finnes i listen ved å bruke find()-metoden
Det gitte Python kode sjekker om tallet 15 finnes i listentest_list>. Den konverterer elementene i listen til strenger og setter dem sammen med bindestreker. Deretter bruker den find()>metode for å sjekke om delstrengen 15 finnes i den resulterende strengen. Hvis 15 blir funnet, skrives det ut Ja, 15 finnes i listen; ellers skrives det ut Nei, 15 finnes ikke i listen.
# 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')> Produksjon
Checking if 15 exists in list Yes, 15 exists in list>
Sjekk om elementet finnes i listen ved å bruke Counter()-funksjonen
Den oppgitte Python-koden bruker Counter> klasse fracollections>modul for å beregne frekvensen til hvert element itest_list>. Den sjekker deretter om frekvensen til tallet 15 er større enn 0. Hvis frekvensen ikke er null, betyr det at 15 finnes i listen, og koden skrives ut Ja, 15 finnes i listen. Ellers skrives det ut Nei, 15 finnes ikke i listen. DeCounter>klasse teller effektivt elementforekomster, noe som muliggjør en enkel eksistenssjekk.
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 finnes i listen') else: print('Nei, 15 finnes ikke i listen')> Produksjon
Yes, 15 exists in list>
Finn om en an element eksisterer i listen ved hjelp av try-except blokk
En ekstra tilnærming for å sjekke om et element finnes i en liste er å bruke indeks() metode. Denne metoden returnerer indeksen for den første forekomsten av elementet i listen eller kaster en ValueError hvis elementet ikke er til stede i listen. For å bruke denne metoden kan du pakke kallet til index() i en try-except-blokk for å fange ValueError og returnere False hvis den oppstår:
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>
Produksjon
True False>
Tidskompleksitet: O(n), hvor n er lengden på listen. index()-metoden itererer gjennom listen for å finne elementet, så tidskompleksiteten er lineær.
Romkompleksitet :O(1). Denne tilnærmingen krever ikke ekstra plass.
Finn om et element finnes i listen ved å bruke filter()-funksjonen
Steg-for-trinn tilnærming
- Definer listen min_liste og Sett element_to_check.
- Bruk filter()-funksjonen til å lage en iterator (filtered_elements) som inneholder elementer som er lik element_to_check.
- Konverter iteratoren filtered_elements til en liste.
- Dette trinnet er nødvendig siden filter()-funksjonen returnerer en iterator. Listen inneholder nå elementer lik element_to_check.
- Sjekk om listen filtered_list ikke er tom.
- Hvis listen ikke er tom, betyr det at elementet finnes i den opprinnelige listen.
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')> Produksjon
Element exists in the list>
Tidskompleksitet: O(n)
Ekstra romkompleksitet: O(n)