A lista egy fontos tároló a pythonban, mivel az összes adattípus elemeit gyűjteményként tárolja. Bizonyos listaműveletek ismerete szükséges a napi programozáshoz. Ez a cikk az egyik alapvető listaműveletet tárgyalja a listában lévő elem létezésének ellenőrzésének módjait.
1. módszer : Naiv módszer
A naiv módszerben egyszerűen egy ciklus segítségével, az összes elemet végig iterálva ellenőrizzük a célelem létezését. Ez a legegyszerűbb módja annak, hogy ellenőrizzük az elem létezését a listában.
2. módszer : A in
Python in használata a leghagyományosabb módja annak, hogy ellenőrizzük, hogy egy elem létezik-e a listában vagy sem. Ez a módszer True értéket ad vissza, ha az elem létezik a listában, és False értéket, ha az elem nem létezik a listában. A listát nem kell rendezni az ellenőrzés ezen megközelítésének gyakorlásához.
Kód #1 : Az elem létezésének ellenőrzése a listában a naiv módszerrel és in
használatával.
test_list = print("Checking if 4 exists in list ( using loop ) : ") for i in test_list: if(i == 4) : print ("Element Exists") print("Checking if 4 exists in list ( using in ) : ") if (4 in test_list): print ("Element Exists") Kimenet :
Checking if 4 exists in list ( using loop ) : Element ExistsChecking if 4 exists in list ( using in ) : Element Exists
3. módszer : set() + in
A lista halmazzá alakítása, majd az in használata esetleg hatékonyabb lehet, mint a csak in használata. De a hatékonyságnak mint plusznak vannak bizonyos negatívumai is. Az egyik ezek közül az, hogy a lista sorrendje nem marad meg, és ha úgy dönt, hogy új listát vesz fel hozzá, akkor extra helyet kell használnia. A másik hátránya, hogy a halmaz nem engedélyezi a duplikálást, és ezért a duplikált elemeket eltávolítanánk az eredeti listából.
4. módszer : sort() + bisect_left()
használata Az elem létezésének vizsgálatára szolgáló hagyományos bináris keresési mód, ezért a listát először rendezni kell, és így nem marad meg az elemek sorrendje. A bisect_left() a keresett elem első előfordulását adja vissza, és hasonlóan működik, mint a lower_bound() a C++ STL-ben.
Kód #2 : Az elem létezésének ellenőrzése a listában a set() + in és a sort() + bisect_left() használatával.
from bisect import bisect_left test_list_set = test_list_bisect = print("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() ) : ") test_list_bisect.sort() if bisect_left(test_list_bisect, 4): print ("Element Exists")