Listen er en vigtig beholder i Python, da den gemmer elementer af alle datatyperne som en samling. Kendskab til visse listeoperationer er nødvendig for dag-dag programmering. Denne artikel diskuterer den hurtigste måde at kontrollere, om en værdi findes på en liste eller ikke bruger 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.>
Tjek om et element findes på en liste i Python
- Ved brug af i Udmelding
- Ved hjælp af en sløjfe
- Ved brug af enhver() funktion
- Ved brug af tælle() fungere
- Ved brug af sortere med bisect_left og sæt()
- Ved brug af Find() metode
- Ved brug af Tæller() fungere
- Ved brug af prøv-undtagen blok
Tjek om et element findes på listen ved hjælp af i udmelding
I denne metode bruger man nemt en loop, der itererer gennem alle elementerne for at kontrollere eksistensen af målelementet. Dette er den enkleste måde at kontrollere eksistensen af elementet på listen. Python er den mest konventionelle måde at kontrollere, om et element findes på en liste eller ej. Denne særlige måde returnerer True, hvis et element findes på listen, og False, hvis elementet ikke findes på listen. Listen behøver ikke sorteres for at praktisere denne kontrolmetode.
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')> Produktion
not exist>
Tidskompleksitet: O(1)
Hjælpeplads: O(n), hvor n er det samlede antal elementer.
simkort indsat men ingen service android
Find om et element findes på listen ved hjælp af en løkke
Den givne Python-kode initialiserer en liste med navntest_list>med nogle heltalselementer. Den gentager derefter hvert element på listen ved hjælp af enfor>sløjfe. Inde i sløjfe , det tjekker om det aktuelle elementi>er lig med værdien 4 ved brug af anif>udmelding. Hvis betingelsen er sand, udskriver den Element Exists til konsollen. Koden udsender meddelelsen, hvis tallet 4 er til stede på listen, og i dette tilfælde vil Element Exists blive udskrevet, da tallet 4 findes på 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')> Produktion:
Element Exists>
Tidskompleksitet: På)
Hjælpeplads: O(1)
Tjek, om et element findes på listen ved hjælp af en hvilken som helst() funktion
Det opnår den ved at bruge any()>fungere med et generatorudtryk. Generatorudtrykket itererer gennem hvert elementtest_list>og tjekker, om den optræder mere end én gang på listen. Resultatet af denne kontrol gemmes i variablenresult>. Til sidst udskriver koden en meddelelse, der angiver, om der er nogen duplikerede elementer, og viser Indeholder streng et listeelement: Sand, hvis der findes dubletter, og Indeholder strengen et listeelement: Falsk, hvis der ikke er dubletter.
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)))> Produktion:
Does string contain any list element : True>
Find om et element findes på listen ved hjælp af count()-funktionen
Vi kan bruge det indbyggede Python liste metode, count(), for at kontrollere, om det beståede element findes i listen. Hvis det beståede element findes i listen, vil tælle() metoden viser det antal gange, det forekommer på hele listen. Hvis det er et positivt tal, der ikke er nul, betyder det, at der findes et element i listen. Demonstrer at kontrollere eksistensen af elementer i listen ved hjælp af tælle() .
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 findes på listen') else: print('Nej, 15 findes ikke på listen')> Produktion:
Checking if 15 exists in list Yes, 15 exists in list>
Tjek om der findes et element på listen ved hjælp af sort med bisect_left og set
Konvertering af listen til sættet og derefter brug det kan muligvis være mere effektivt end kun at bruge det. Men at have effektivitet som et plus har også visse negative sider. En af dem er, at rækkefølgen af listen ikke bevares, og hvis du vælger at tage en ny liste til den, skal du bruge ekstra plads. En anden ulempe er, at sæt ikke tillader dobbelthed, og duplikerede elementer ville derfor blive fjernet fra den originale liste. I den konventionelle binære søgemetode til at teste elementeksistens, skal listen derfor sorteres først og bevarer derfor ikke elementrækkefølgen. bisect_left() returnerer den første forekomst af elementet, der skal findes og har fungeret på samme måde som nedre grænse() i C++ STL.
np prik
Bemærk: Bisect-funktionen angiver kun positionen for, hvor elementet skal indsættes, men ikke detaljerne om, hvorvidt elementet er til stede eller ej.
Demonstrer at kontrollere eksistensen af element i listen ved hjælp af sæt() + 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')> Produktion:
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>
Tjek om et element findes i listen ved hjælp af find() metoden
Det givne Python kode kontrollerer, om tallet 15 findes på listentest_list>. Det konverterer elementerne i listen til strenge og sammenkæder dem med bindestreger. Derefter bruger den find()>metode for at kontrollere, om understrengen 15 findes i den resulterende streng. Hvis 15 findes, udskriver den Ja, 15 findes på listen; ellers udskriver den Nej, 15 findes ikke på 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')> Produktion
Checking if 15 exists in list Yes, 15 exists in list>
Tjek om element findes i listen ved hjælp af Counter()-funktionen
Den medfølgende Python-kode bruger Counter> klasse fracollections>modul til at beregne frekvensen af hvert element itest_list>. Den kontrollerer derefter, om frekvensen af tallet 15 er større end 0. Hvis frekvensen ikke er nul, betyder det, at 15 findes på listen, og koden udskriver Ja, 15 findes på listen. Ellers udskriver den Nej, 15 findes ikke på listen. DetCounter>klasse tæller effektivt elementforekomster, hvilket giver mulighed for en ligetil eksistenskontrol.
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 findes på listen') else: print('Nej, 15 findes ikke på listen')> Produktion
Yes, 15 exists in list>
Find om en en element eksisterer i listen ved hjælp af try-except blok
En yderligere tilgang til at kontrollere, om et element findes på en liste, er at bruge indeks() metode. Denne metode returnerer indekset for den første forekomst af elementet på listen eller kaster en ValueError, hvis elementet ikke er til stede på listen. For at bruge denne metode kan du pakke kaldet til index() i en try-except-blok for at fange ValueError og returnere False, hvis den opstå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>
Produktion
True False>
Tidskompleksitet: O(n), hvor n er længden af listen. Metoden index() itererer gennem listen for at finde elementet, så tidskompleksiteten er lineær.
Rumkompleksitet : O(1). Denne fremgangsmåde kræver ikke yderligere plads.
Find om et element findes i listen ved hjælp af filter()-funktionen
Trin-for-trin tilgang
- Definer listen min_liste og Indstil element_to_check.
- Brug filter()-funktionen til at oprette en iterator (filtrerede_elementer), der indeholder elementer svarende til element_to_check.
- Konverter iteratoren filtered_elements til en liste.
- Dette trin er nødvendigt, da filter()-funktionen returnerer en iterator. Listen indeholder nu elementer svarende til element_to_check.
- Tjek om listen filtered_list ikke er tom.
- Hvis listen ikke er tom, betyder det, at elementet findes i den originale liste.
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')> Produktion
Element exists in the list>
Tidskompleksitet: O(n)
Hjælperums kompleksitet: O(n)