logo

Pārbaudiet, vai Python sarakstā ir elements

Saraksts ir svarīgs Python konteiners, jo tajā tiek glabāti visu datu tipu elementi kā kolekcija. Zināšanas par noteiktām saraksta darbībām ir nepieciešamas dienas programmēšanai. Šajā rakstā ir apskatīts ātrākais veids, kā pārbaudīt, vai sarakstā ir vai netiek izmantota vērtība Python .

Piemērs



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

Pārbaudiet, vai Python sarakstā ir kāds elements

Pārbaudiet, vai sarakstā ir kāds elements, izmantojot iekšā paziņojums, apgalvojums

Izmantojot šo metodi, var viegli izmantot cilpu, kas atkārtojas cauri visiem elementiem, lai pārbaudītu mērķa elementa esamību. Tas ir vienkāršākais veids, kā pārbaudīt elementa esamību sarakstā. Python ir visparastākais veids, kā pārbaudīt, vai sarakstā ir vai nav kāds elements. Šis konkrētais veids atgriež True, ja elements pastāv sarakstā, un False, ja elements neeksistē sarakstā. Saraksts nav jākārto, lai izmantotu šo pārbaudes pieeju.

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

Izvade
not exist>

Laika sarežģītība: O(1)
Palīgtelpa: O(n), kur n ir kopējais elementu skaits.

Izmantojot cilpu, atrodiet, vai sarakstā pastāv elements

Dotais Python kods inicializē sarakstu ar nosaukumutest_list>ar dažiem veselu skaitļu elementiem. Pēc tam tas atkārto katru saraksta elementu, izmantojot afor>cilpa. Iekšpusē cilpa , tā pārbauda, ​​vai pašreizējais elementsi>ir vienāds ar vērtību 4, izmantojot anif>paziņojums, apgalvojums. Ja nosacījums ir patiess, tas konsolē izdrukā Element Exists. Kods izvadīs ziņojumu, ja sarakstā ir cipars 4, un šajā gadījumā tiks izdrukāts elements Element Exists, jo sarakstā ir skaitlis 4[1, 6, 3, 5, 3, 4]>.



"kas ir 10 no 100"
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')>

Izvade:

Element Exists>

Laika sarežģītība: O(n)
Palīgtelpa: O(1)

Pārbaudiet, vai sarakstā ir kāds elements, izmantojot funkciju any().

Tas tiek panākts, izmantojot any()>funkciju ar ģeneratora izteiksmi. Ģeneratora izteiksme atkārtojas katrā elementātest_list>un pārbauda, ​​vai tas sarakstā parādās vairāk nekā vienu reizi. Šīs pārbaudes rezultāts tiek saglabāts mainīgajāresult>. Visbeidzot, kods izdrukā ziņojumu, norādot, vai ir elementu dublikāti, parādot Vai virknē ir kāds saraksta elements: True, ja pastāv dublikāti, un Vai virknē ir kāds saraksta elements: False, ja nav dublikātu.



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

Izvade:

Does string contain any list element : True>

Izmantojot funkciju count(), atrodiet, vai sarakstā ir kāds elements

Varam izmantot iebūvēto Python saraksts metodi, count (), lai pārbaudītu, vai nodotais elements pastāv sarakstā. Ja apstiprinātais elements pastāv sarakstā, skaitīt () metode parādīs, cik reižu tā parādās visā sarakstā. Ja tas ir pozitīvs skaitlis, kas nav nulle, tas nozīmē, ka sarakstā pastāv elements. Demonstrēšana, lai pārbaudītu elementu esamību sarakstā, izmantojot skaitīt () .

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('Jā, sarakstā ir 15') else: print('Nē, 15 sarakstā nepastāv')>

Izvade:

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

Pārbaudiet, vai sarakstā pastāv elements, izmantojot kārtot ar bisect_left un set

Saraksta pārvēršana komplektā un pēc tam izmantošana to var būt efektīvāka nekā tikai tā izmantošana. Bet efektivitātes plusam ir arī daži negatīvi aspekti. Viens no tiem ir tāds, ka saraksta secība netiek saglabāta, un, ja izvēlēsities tam izveidot jaunu sarakstu, jums būs jāizmanto papildu vieta. Vēl viens trūkums ir tas, ka iestatījums neļauj dublēties, un tādējādi elementu dublikāti tiks noņemti no sākotnējā saraksta. Parastā binārās meklēšanas veidā elementu esamības pārbaudei, tāpēc saraksts vispirms ir jāsakārto, un tādējādi netiek saglabāta elementu secība. bisect_left() atgriež pirmo atrastā elementa sastopamību un ir darbojies līdzīgi kā apakšējā_ robeža() valodā C++ STL.

Piezīme: Bisect funkcija norādīs tikai vietu, kur ievietot elementu, bet ne informāciju par to, vai elements ir vai nav.

Demonstrēšana, lai pārbaudītu elementa esamību sarakstā, izmantojot set() + iekšā un kārtot () + 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')>

Izvade:

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

Pārbaudiet, vai sarakstā ir kāds elements, izmantojot metodi find().

Dotais Python kods pārbauda, ​​vai sarakstā ir skaitlis 15test_list>. Tas pārvērš saraksta elementus virknēs un savieno tos ar defisēm. Pēc tam tas izmanto find()>metodi lai pārbaudītu, vai iegūtajā virknē ir apakšvirkne 15. Ja tiek atrasts 15, tiek drukāts Jā, sarakstā ir 15; pretējā gadījumā tas izdrukā Nē, 15 sarakstā nav.

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

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

Pārbaudiet, vai sarakstā ir elements, izmantojot funkciju Counter().

Norādītais Python kods izmanto Counter> klase nocollections>modulis, lai aprēķinātu katra elementa biežumutest_list>. Pēc tam tiek pārbaudīts, vai skaitļa 15 biežums ir lielāks par 0. Ja frekvence nav nulle, tas nozīmē, ka sarakstā ir 15, un kods tiek izdrukāts Jā, sarakstā ir 15. Pretējā gadījumā tas izdrukā Nē, 15 sarakstā nav. TheCounter>klase efektīvi uzskaita elementu gadījumus, ļaujot veikt vienkāršu esamības pārbaudi.

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('Jā, sarakstā ir 15') else: print('Nē, 15 sarakstā nepastāv')>

Izvade
Yes, 15 exists in list>

Atrast, ja an an elements pastāv sarakstā, izmantojot try-izņemot bloku

Viena papildu pieeja, lai pārbaudītu, vai sarakstā ir elements, ir izmantot indekss() metodi. Šī metode atgriež elementa pirmās parādīšanās indeksu sarakstā vai izdod ValueError, ja elements nav iekļauts sarakstā. Lai izmantotu šo metodi, varat ietīt izsaukumu uz index() try-except blokā, lai uztvertu ValueError un atgrieztu False, ja tā notiek:

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>

Izvade
True False>

Laika sarežģītība: O(n), kur n ir saraksta garums. Metode index() atkārtojas sarakstā, lai atrastu elementu, tāpēc laika sarežģītība ir lineāra.
Telpas sarežģītība : O(1). Šī pieeja neprasa papildu vietu.

Izmantojot filtru() funkciju, atrodiet, vai sarakstā pastāv elements

Soli pa solim pieeja

  • Definējiet sarakstu my_list un Set element_to_check.
  • Izmantojiet filtru() funkciju, lai izveidotu iteratoru (filtrētie_elementi), kas satur elementus, kas vienādi ar elementu_to_check.
  • Konvertējiet iteratora filtrued_elements par sarakstu.
  • Šis solis ir nepieciešams, jo funkcija filter() atgriež iteratoru. Tagad sarakstā ir elementi, kas vienādi ar element_to_check.
  • Pārbaudiet, vai saraksts filtered_list nav tukšs.
  • Ja saraksts nav tukšs, tas nozīmē, ka elements pastāv sākotnējā sarakstā.
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')>

Izvade
Element exists in the list>

Laika sarežģītība: O(n)

Papildtelpas sarežģītība: O(n)