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