Listan är en viktig behållare i Python eftersom den lagrar element av alla datatyper som en samling. Kunskap om vissa listoperationer är nödvändig för dagsprogrammering. Den här artikeln diskuterar en av de grundläggande listoperationerna av sätt att kontrollera existensen av element i listan.
Metod 1 : Naiv metod
I den naiva metoden använder man enkelt en slinga som itererar genom alla element för att kontrollera existensen av målelementet. Detta är det enklaste sättet att kontrollera om elementet finns i listan.
Metod 2 : Använda in
Python in
är det mest konventionella sättet att kontrollera om ett element finns i listan eller inte. Denna metod returnerar True om elementet finns i listan och False om elementet inte finns i listan. Listan behöver inte vara sorterad för att tillämpa detta sätt att kontrollera.
Kod #1 : Demonstration av hur man kontrollerar om ett element finns i listan med hjälp av naiv metod och 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
Metod 3 : Användning av set()
+ in
Att omvandla listan till set och sedan använda in kan möjligen vara effektivare än att bara använda in
. Men att ha effektivitet som ett plus har också vissa nackdelar. En av dem är att listans ordning inte bevaras, och om du väljer att ta en ny lista för det skulle du behöva använda extra utrymme. En annan nackdel är att set inte tillåter dubbletter och att dubbletter därför tas bort från den ursprungliga listan.
Metod 4: Användning av sort()
+ bisect_left()
Den konventionella binära sökmetoden för att testa om element finns, vilket innebär att listan måste sorteras först och att elementens ordningsföljd därför inte bevaras. bisect_left()
returnerar den första förekomsten av det element som ska hittas och fungerar på samma sätt som lower_bound() i C++ STL.
Kod 2: Demonstration av hur man kontrollerar förekomsten av ett element i en lista med hjälp av set()
+ in
och 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"
)