logo

Preverite, ali element obstaja na seznamu v Pythonu

Seznam je pomemben vsebnik v Pythonu, saj shranjuje elemente vseh tipov podatkov kot zbirko. Poznavanje določenih operacij seznama je potrebno za dnevno programiranje. Ta članek obravnava najhitrejši način za preverjanje, ali vrednost obstaja na seznamu ali se ne uporablja Python .

Primer



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

Preverite, ali element obstaja na seznamu v Pythonu

Preverite, ali element obstaja na seznamu z uporabo v izjava

Pri tej metodi lahko preprosto uporabimo zanko, ki ponavlja vse elemente, da preveri obstoj ciljnega elementa. To je najenostavnejši način preverjanja obstoja elementa na seznamu. Python je najbolj običajen način za preverjanje, ali element obstaja na seznamu ali ne. Ta poseben način vrne True, če element obstaja na seznamu, in False, če element ne obstaja na seznamu. Za izvajanje tega pristopa preverjanja seznama ni treba razvrščati.

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

Izhod
not exist>

Časovna zapletenost: O(1)
Pomožni prostor: O(n), kjer je n skupno število elementov.

Ugotovite, ali element obstaja na seznamu z uporabo zanke

Podana koda Python inicializira seznam z imenomtest_list>z nekaterimi celimi elementi. Nato se ponovi skozi vsak element na seznamu z uporabo afor>zanka. Znotraj zanka , preveri, ali je trenutni elementi>je enaka vrednosti 4 z uporabo anif>izjava. Če je pogoj resničen, natisne Element Exists na konzolo. Koda bo izdala sporočilo, če je številka 4 prisotna na seznamu, in v tem primeru bo natisnjeno Element obstaja, ker številka 4 obstaja na seznamu[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')>

Izhod:

Element Exists>

Časovna zapletenost: O(n)
Pomožni prostor: O(1)

S funkcijo any() preverite, ali element obstaja na seznamu

To doseže z uporabo any()>funkcijo z generatorskim izrazom. Izraz generatorja ponavlja skozi vsak elementtest_list>in preveri, ali se na seznamu pojavi več kot enkrat. Rezultat tega preverjanja je shranjen v spremenljivkiresult>. Na koncu koda natisne sporočilo, ki označuje, ali obstajajo podvojeni elementi, in prikaže Ali niz vsebuje kateri koli element seznama: True, če obstajajo dvojniki, in Ali niz vsebuje kateri koli element seznama: False, če ni dvojnikov.



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

Izhod:

Does string contain any list element : True>

S funkcijo count() poiščite, ali element obstaja na seznamu

Uporabljamo lahko vgrajeno Seznam Python metoda count(), da preveri, ali posredovani element obstaja na seznamu. Če podani element obstaja na seznamu, se element štetje () metoda bo pokazala, kolikokrat se pojavi na celotnem seznamu. Če je pozitivno število, ki ni nič, to pomeni, da element obstaja na seznamu. Prikazovanje za preverjanje obstoja elementov na seznamu z uporabo štetje () .

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('Da, 15 obstaja na seznamu') else: print('Ne, 15 ne obstaja na seznamu')>

Izhod:

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

Preverite, ali element obstaja na seznamu, tako da razvrstite z bisect_left in nastavite

Pretvarjanje seznama v niz in nato uporaba to morda bolj učinkovito kot samo uporaba. Toda imeti učinkovitost kot plus ima tudi določene negativne strani. Eden od njih je, da se vrstni red seznama ne ohrani in če se odločite za nov seznam, boste morali uporabiti dodaten prostor. Druga pomanjkljivost je, da nabor onemogoča podvajanje, zato bi bili podvojeni elementi odstranjeni s prvotnega seznama. Pri običajnem načinu binarnega iskanja za preizkušanje obstoja elementa je treba zato seznam najprej razvrstiti in zato ne ohrani vrstnega reda elementov. razpolovitev_levo() vrne prvo pojavitev elementa, ki ga je treba najti in je deloval podobno kot spodnja_meja() v C++ STL.

Opomba: Funkcija bisect bo navedla le položaj, kam vstaviti element, ne pa tudi podrobnosti o tem, ali je element prisoten ali ne.

Predstavljanje za preverjanje obstoja elementa na seznamu z uporabo set() + v in razvrsti() + razpolovitev_levo()

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

Izhod:

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

Z metodo find() preverite, ali element obstaja na seznamu

Dano Python koda preveri, ali številka 15 obstaja na seznamutest_list>. Elemente seznama pretvori v nize in jih poveže z vezaji. Nato uporablja find()>metoda da preverite, ali podniz 15 obstaja v nastalem nizu. Če je najdenih 15, natisne Da, 15 obstaja na seznamu; drugače natisne Ne, 15 ne obstaja na seznamu.

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

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

Preverite, ali element obstaja na seznamu s funkcijo Counter().

Priložena koda Python uporablja Counter> razreda izcollections>modul za izračun frekvence vsakega elementa vtest_list>. Nato preveri, ali je frekvenca števila 15 večja od 0. Če frekvenca ni nič, to pomeni, da 15 obstaja na seznamu, in koda natisne Da, 15 obstaja na seznamu. V nasprotnem primeru natisne Ne, 15 ne obstaja na seznamu. TheCounter>razred učinkovito šteje pojavitve elementov, kar omogoča preprosto preverjanje obstoja.

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('Da, 15 obstaja na seznamu') else: print('Ne, 15 ne obstaja na seznamu')>

Izhod
Yes, 15 exists in list>

Poiščite, če an an element obstaja na seznamu z uporabo bloka poskusi razen

Dodaten pristop za preverjanje, ali element obstaja na seznamu, je uporaba indeks() metoda. Ta metoda vrne indeks prve pojavitve elementa na seznamu ali vrže ValueError, če elementa ni na seznamu. Če želite uporabiti to metodo, lahko klic index() zavijete v blok poskusi razen, da ujamete ValueError in vrnete False, če se pojavi:

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>

Izhod
True False>

Časovna zahtevnost: O(n), kjer je n dolžina seznama. Metoda index() ponavlja po seznamu, da najde element, zato je časovna kompleksnost linearna.
Kompleksnost prostora : O(1). Ta pristop ne zahteva dodatnega prostora.

S funkcijo filter() poiščite, ali element an obstaja na seznamu

Pristop po korakih

  • Določite seznam my_list in Set element_to_check.
  • S funkcijo filter() ustvarite iterator (filtrirani_elementi), ki vsebuje elemente, enake elementu_to_check.
  • Pretvorite iterator filtered_elements v seznam.
  • Ta korak je potreben, saj funkcija filter() vrne iterator. Seznam zdaj vsebuje elemente, enake element_to_check.
  • Preverite, ali seznam filtered_list ni prazen.
  • Če seznam ni prazen, to pomeni, da element obstaja na izvirnem seznamu.
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')>

Izhod
Element exists in the list>

Časovna zahtevnost: O(n)

Kompleksnost pomožnega prostora: O(n)

abeceda v številkah