Lijst is een belangrijke container in python omdat het elementen van alle datatypes als een verzameling opslaat. Kennis van bepaalde lijst operaties zijn noodzakelijk voor het programmeren van alledag. In dit artikel wordt een van de basisbewerkingen van de lijst besproken, namelijk hoe het bestaan van een element in een lijst kan worden gecontroleerd.
Methode 1 : Naïeve methode
In de naïeve methode gebruikt men eenvoudig een lus die alle elementen itereert om het bestaan van het doelelement te controleren. Dit is de eenvoudigste manier om het bestaan van het element in de lijst te controleren.
Methode 2 : Met behulp van in
Python in
is de meest conventionele manier om te controleren of een element in de lijst bestaat of niet. Deze manier geeft True terug als het element bestaat in de lijst en False als het element niet bestaat in de lijst. De lijst hoeft niet gesorteerd te zijn om deze manier van controleren toe te passen.
Code #1 : Demonstratie van het controleren van het bestaan van elementen in lijst met behulp van de naïeve methode en in
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"
)
Output :
Checking if 4 exists in list ( using loop ) : Element ExistsChecking if 4 exists in list ( using in ) : Element Exists
Methode 3 : Gebruik van set()
+ in
Het omzetten van de lijst in set en dan gebruiken in kan mogelijk efficiënter zijn dan alleen het gebruik van in
. Maar efficiëntie als pluspunt hebben heeft ook bepaalde nadelen. Eén daarvan is dat de volgorde van de lijst niet bewaard blijft, en als je er een nieuwe lijst voor zou nemen, zou je extra ruimte nodig hebben. Een ander nadeel is dat set geen dubbele elementen toestaat en dat dubbele elementen dus uit de oorspronkelijke lijst worden verwijderd.
Methode 4 : Met behulp van sort()
+ bisect_left()
De conventionele binaire zoekmethode om het bestaan van elementen te controleren, waardoor de lijst eerst moet worden gesorteerd en de volgorde van de elementen dus niet behouden blijft. bisect_left()
retourneert het eerste element dat gevonden moet worden en heeft een vergelijkbare werking als lower_bound() in C++ STL.
Code #2 : Demonstratie van het controleren van het bestaan van een element in de lijst met behulp van set()
+ in
en sort()
+ bisect_left()
.
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"
)