Listan är en viktig behållare i Python eftersom den lagrar element av alla datatyper som en samling. Kunskap om vissa listoperationer är nödvändig för dag-dagsprogrammering. Den här artikeln diskuterar det snabbaste sättet att kontrollera om ett värde finns i en lista eller inte använder Pytonorm .
Exempel
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.>
Kontrollera om ett element finns i en lista i Python
- Använder sig av i Påstående
- Använder en slinga
- Använder sig av any() funktion
- Använder sig av räkna() fungera
- Använder sig av sortera med bisect_left och uppsättning()
- Använder sig av hitta() metod
- Använder sig av Disken() fungera
- Använder sig av försök-utom block
Kontrollera om ett element finns i listan med hjälp av i påstående
I denna metod använder man enkelt en loop som itererar genom alla element för att kontrollera existensen av målelementet. Detta är det enklaste sättet att kontrollera förekomsten av elementet i listan. Python är det mest konventionella sättet att kontrollera om ett element finns i en lista eller inte. Det här sättet returnerar True om ett element finns i listan och False om elementet inte finns i listan. Listan behöver inte sorteras för att öva denna kontrollmetod.
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>
Tidskomplexitet: O(1)
Hjälputrymme: O(n), där n är det totala antalet element.
Hitta om ett element finns i listan med hjälp av en loop
Den givna Python-koden initierar en lista med namnettest_list>
med några heltalselement. Den itererar sedan genom varje element i listan med hjälp av afor>
slinga. Inuti slinga , kontrollerar det om det aktuella elementeti>
är lika med värdet 4 med anif>
påstående. Om villkoret är sant, skrivs Element existerar till konsolen. Koden kommer att mata ut meddelandet om siffran 4 finns i listan, och i det här fallet kommer elementet existerar att skrivas ut eftersom siffran 4 finns i listan[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>
Tidskomplexitet: På)
Hjälputrymme: O(1)
Kontrollera om ett element finns i listan med någon() funktion
Den uppnår detta genom att använda any()>
fungera med ett generatoruttryck. Generatoruttrycket itererar genom varje elementtest_list>
och kontrollerar om det förekommer mer än en gång i listan. Resultatet av denna kontroll lagras i variabelnresult>
. Slutligen skriver koden ut ett meddelande som anger om det finns några dubbletter av element, och visar Innehåller strängen något listelement: Sant om det finns dubbletter och innehåller strängen något listelement: Falskt om det inte finns några dubbletter.
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>
Hitta om ett element finns i listan med funktionen count()
Vi kan använda den inbyggda Python lista metod, count(), för att kontrollera om det godkända elementet finns i listan. Om det godkända elementet finns i listan, räkna() metoden visar hur många gånger den förekommer i hela listan. Om det är ett positivt tal som inte är noll betyder det att ett element finns i listan. Demonstrerar för att kontrollera förekomsten av element i listan med hjälp av räkna() .
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 finns i listan') else: print('Nej, 15 finns inte i listan')>
Produktion:
Checking if 15 exists in list Yes, 15 exists in list>
Kontrollera om ett element finns i listan med hjälp av sortera med bisect_left och set
Konvertera listan till uppsättningen och sedan använda Det kan möjligen vara effektivare än att bara använda den. Men att ha effektivitet som ett plus har också vissa negativa egenskaper. En av dem är att ordningen på listan inte bevaras, och om du väljer att ta en ny lista för den, skulle du behöva använda extra utrymme. En annan nackdel är att uppsättningen inte tillåter dubblering och därför skulle dubbletter av element tas bort från den ursprungliga listan. I det konventionella binära söksättet för att testa elementexistens, måste därför listan sorteras först och bevarar därför inte elementordningen. bisect_left() returnerar den första förekomsten av elementet som ska hittas och har fungerat på liknande sätt som nedre_gräns() i C++ STL.
Notera: Bisect-funktionen kommer bara att ange positionen för var elementet ska infogas men inte detaljer om om elementet finns eller inte.
Demonstrerar för att kontrollera förekomsten av element i listan med hjälp av uppsättning() + i och sortera() + 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:
Checking if 4 exists in list ( using set() + in) : Element Exists Checking if 4 exists in list ( using sort() + bisect_left() ) : Element Exists>
Kontrollera om ett element finns i listan med metoden find().
Det givna Pytonorm kod kontrollerar om siffran 15 finns i listantest_list>
. Det konverterar elementen i listan till strängar och sammanfogar dem med bindestreck. Sedan använder den find()>
metod för att kontrollera om delsträngen 15 finns i den resulterande strängen. Om 15 hittas, skrivs det ut Ja, 15 finns i listan; annars skriver den ut Nej, 15 finns inte i listan.
# 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>
Kontrollera om element finns i listan med Counter()-funktionen
Den medföljande Python-koden använder Counter>
klass fråncollections>
modul för att beräkna frekvensen för varje element itest_list>
. Den kontrollerar sedan om frekvensen för siffran 15 är större än 0. Om frekvensen inte är noll betyder det att 15 finns i listan, och koden skrivs ut Ja, 15 finns i listan. Annars skriver den ut Nej, 15 finns inte i listan. DeCounter>
klass räknar effektivt elementförekomster, vilket möjliggör en enkel existenskontroll.
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 finns i listan') else: print('Nej, 15 finns inte i listan')>
Produktion
Yes, 15 exists in list>
Hitta om en en elementet finns i listan med försök-utom block
En ytterligare metod för att kontrollera om ett element finns i en lista är att använda index() metod. Denna metod returnerar indexet för den första förekomsten av elementet i listan eller kastar ett ValueError om elementet inte finns i listan. För att använda den här metoden kan du slå anropet till index() i ett try-except-block för att fånga ValueError och returnera False om det inträffar:
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>
Tidskomplexitet: O(n), där n är längden på listan. Metoden index() itererar genom listan för att hitta elementet, så tidskomplexiteten är linjär.
Rymdkomplexitet :O(1). Detta tillvägagångssätt kräver inget extra utrymme.
Hitta om ett element finns i listan med hjälp av filter()-funktionen
Steg-för-steg tillvägagångssätt
- Definiera listan min_lista och Ange element_to_check.
- Använd filter()-funktionen för att skapa en iterator (filtered_elements) som innehåller element lika med element_to_check.
- Konvertera iteratorn filtered_elements till en lista.
- Detta steg är nödvändigt eftersom filter()-funktionen returnerar en iterator. Listan innehåller nu element lika med element_to_check.
- Kontrollera om listan filtered_list inte är tom.
- Om listan inte är tom betyder det att elementet finns i den ursprungliga listan.
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>
Tidskomplexitet: O(n)
Auxiliary Space Complexity: O(n)