Luettelo on tärkeä säilö Pythonissa, koska se tallentaa elementtejä kaikista tietotyypeistä kokoelmana. Tiettyjen listatoimintojen tuntemus on välttämätöntä päiväpäiväohjelmointia varten. Tässä artikkelissa käsitellään nopeinta tapaa tarkistaa, onko arvo luettelossa vai ei käytössä Python .
Esimerkki
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.>
Tarkista, onko elementti olemassa Pythonin luettelossa
- Käyttämällä sisään lausunto
- Käyttää silmukka
- Käyttämällä mikä tahansa()-funktio
- Käyttämällä Kreivi() toiminto
- Käyttämällä järjestellä kanssa bisect_left ja aseta()
- Käyttämällä löytö() menetelmä
- Käyttämällä Laskuri() toiminto
- Käyttämällä kokeile-paitsi lohko
Tarkista, onko luettelossa elementtiä käyttämällä sisään lausunto
Tässä menetelmässä voidaan helposti käyttää silmukkaa, joka iteroi kaikkien elementtien läpi kohde-elementin olemassaolon tarkistamiseksi. Tämä on yksinkertaisin tapa tarkistaa elementin olemassaolo luettelossa. Python on tavallisin tapa tarkistaa, onko elementti luettelossa vai ei. Tämä tapa palauttaa True, jos elementti on luettelossa, ja False, jos elementtiä ei ole luettelossa. Luetteloa ei tarvitse lajitella tämän tarkastustavan harjoittamiseksi.
Python 3 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')> Lähtö
not exist>
Aika monimutkaisuus: O(1)
Aputila: O(n), missä n on elementtien kokonaismäärä.
Selvitä, onko luettelossa elementti silmukan avulla
Annettu Python-koodi alustaa listan nimeltätest_list>joidenkin kokonaislukuelementtien kanssa. Sitten se iteroidaan luettelon jokaisen elementin läpi käyttämällä afor>silmukka. Sisällä silmukka , se tarkistaa, onko nykyinen elementtii>on yhtä suuri kuin arvo 4 käyttämällä anif>lausunto. Jos ehto on tosi, se tulostaa konsoliin Element Exists. Koodi tulostaa viestin, jos numero 4 on luettelossa, ja tässä tapauksessa Element Exists tulostuu, koska numero 4 on luettelossa[1, 6, 3, 5, 3, 4]>.
Python 3
# 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')> Lähtö:
Element Exists>
Aika monimutkaisuus: Päällä)
Aputila: O(1)
Tarkista, onko luettelossa elementti jollakin()-funktiolla
Se saavuttaa tämän käyttämällä any()>toiminto generaattorilausekkeella. Generaattorilauseke toistuu jokaisen elementin läpitest_list>ja tarkistaa, esiintyykö se useammin kuin kerran luettelossa. Tämän tarkistuksen tulos tallennetaan muuttujaanresult>. Lopuksi koodi tulostaa viestin, joka ilmoittaa, onko olemassa päällekkäisiä elementtejä. Näytöllä näkyy Onko merkkijonossa mitään luetteloelementtiä: True, jos kaksoiskappaleita on olemassa ja sisältääkö merkkijono luetteloelementtejä: False, jos kaksoiskappaleita ei ole.
Python 3
# 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)))> Lähtö:
Does string contain any list element : True>
Tarkista, onko luettelossa elementti count()-funktion avulla
Voimme käyttää sisäänrakennettua Python-lista menetelmällä count(), jotta voit tarkistaa, onko hyväksytty elementti luettelossa. Jos hyväksytty elementti on luettelossa, Kreivi() menetelmä näyttää, kuinka monta kertaa se esiintyy koko luettelossa. Jos se on nollasta poikkeava positiivinen luku, se tarkoittaa, että luettelossa on elementti. Osoitetaan elementtien olemassaolon tarkistaminen luettelossa käyttämällä Kreivi() .
Python 3 # 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('Kyllä, 15 on luettelossa') else: print('Ei, 15 ei ole luettelossa')> Lähtö:
Checking if 15 exists in list Yes, 15 exists in list>
Tarkista, onko luettelossa elementti, käyttämällä lajittelua bisect_left and set -toiminnolla
Luettelon muuntaminen joukoksi ja sitten käyttö se voi olla tehokkaampaa kuin pelkkä sen käyttäminen. Mutta tehokkuudella on myös tiettyjä negatiivisia puolia. Yksi niistä on se, että luettelon järjestystä ei säilytetä, ja jos valitset uuden luettelon, sinun on käytettävä ylimääräistä tilaa. Toinen haittapuoli on, että asetus estää päällekkäisyyden ja siten päällekkäiset elementit poistettaisiin alkuperäisestä luettelosta. Perinteisessä binäärihakutavassa elementtien olemassaolon testaamiseen, joten lista on ensin lajiteltava, eikä se siten säilytä elementtien järjestystä. bisect_left() palauttaa löydetyn elementin ensimmäisen esiintymän ja on toiminut samalla tavalla kuin alaraja() C++ STL:ssä.
Huomautus: Bisect-funktio ilmoittaa vain paikan, johon elementti lisätään, mutta ei tietoja siitä, onko elementti olemassa vai ei.
Osoitetaan elementin olemassaolon tarkistamiseksi luettelossa käyttämällä aseta() + sisään ja järjestellä() + bisect_left()
c ohjelma merkkijonojen vertailuunPython 3
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')> Lähtö:
Checking if 4 exists in list ( using set() + in) : Element Exists Checking if 4 exists in list ( using sort() + bisect_left() ) : Element Exists>
Tarkista, onko luettelossa elementtiä käyttämällä find()-menetelmää
Annettu Python koodi tarkistaa, onko numero 15 luettelossatest_list>. Se muuntaa luettelon elementit merkkijonoiksi ja ketjuttaa ne väliviivojen kanssa. Sitten se käyttää find()>menetelmä tarkistaaksesi, onko alimerkkijono 15 olemassa tuloksena olevassa merkkijonossa. Jos 15 löytyy, se tulostaa Kyllä, luettelossa on 15; muussa tapauksessa se tulostaa Ei, 15 ei ole luettelossa.
# 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')> Lähtö
Checking if 15 exists in list Yes, 15 exists in list>
Tarkista, onko luettelossa elementtiä Counter()-funktiolla
Toimitettu Python-koodi käyttää Counter> luokasta alkaencollections>moduuli laskea kunkin elementin taajuudentest_list>. Sitten se tarkistaa, onko luvun 15 taajuus suurempi kuin 0. Jos taajuus on muu kuin nolla, se tarkoittaa, että luettelossa on 15, ja koodi tulostaa Kyllä, 15 on luettelossa. Muussa tapauksessa se tulostaa Ei, 15 ei ole luettelossa. TheCounter>luokka laskee tehokkaasti elementtien esiintymät, mikä mahdollistaa suoran olemassaolon tarkistuksen.
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('Kyllä, 15 on luettelossa') else: print('Ei, 15 ei ole luettelossa')> Lähtö
Yes, 15 exists in list>
Etsi jos an an elementti on olemassa luettelossa käyttämällä try-paitsi lohkoa
Toinen tapa tarkistaa, onko elementti luettelossa, on käyttää indeksi() menetelmä. Tämä menetelmä palauttaa luettelon elementin ensimmäisen esiintymisen indeksin tai antaa ValueError-ilmoituksen, jos elementtiä ei ole luettelossa. Jos haluat käyttää tätä menetelmää, voit kääriä index()-kutsun try-except-lohkoon saadaksesi ValueErrorin ja palauttaaksesi False, jos se tapahtuu:
Python 3 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>
Lähtö
True False>
Aika monimutkaisuus: O(n), missä n on listan pituus. Indeksi()-menetelmä iteroi luettelon läpi löytääkseen elementin, joten aikamonimutkaisuus on lineaarinen.
Avaruuden monimutkaisuus : O(1). Tämä lähestymistapa ei vaadi ylimääräistä tilaa.
Selvitä, onko luettelossa elementti filter()-funktion avulla
Vaiheittainen lähestymistapa
- Määrittele luettelo my_list ja Set element_to_check.
- Käytä filter()-funktiota luodaksesi iteraattorin (filtered_elements), joka sisältää elementtejä, jotka ovat yhtä suuria kuin element_to_check.
- Muunna iteraattorin filtered_elements luetteloksi.
- Tämä vaihe on välttämätön, koska filter()-funktio palauttaa iteraattorin. Lista sisältää nyt elementtejä, jotka ovat yhtä suuria kuin element_to_check.
- Tarkista, ettei lista filtered_list ole tyhjä.
- Jos luettelo ei ole tyhjä, se tarkoittaa, että elementti on olemassa alkuperäisessä luettelossa.
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')> Lähtö
Element exists in the list>
Aika monimutkaisuus: O(n)
Aputilan monimutkaisuus: O(n)