List jest ważnym kontenerem w pythonie, ponieważ przechowuje elementy wszystkich datatypów jako kolekcję. Znajomość pewnych operacji na listach jest niezbędna w codziennym programowaniu. Ten artykuł omawia jedną z podstawowych operacji listy sposobów sprawdzania istnienia elementu na liście.
Metoda 1 : Naiwna metoda
W Naiwnej metodzie, jeden łatwo używa pętli, która iteruje przez wszystkie elementy, aby sprawdzić istnienie elementu docelowego. Jest to najprostszy sposób, aby sprawdzić istnienie elementu na liście.
Metoda 2 : Korzystanie in
Python in
jest najbardziej konwencjonalny sposób, aby sprawdzić, czy element istnieje na liście, czy nie. Ten szczególny sposób zwraca True, jeśli element istnieje na liście i False, jeśli element nie istnieje na liście. Lista nie musi być posortowana, aby praktykować to podejście do sprawdzania.
Kod #1 : Demonstracja sprawdzania istnienia elementu na liście za pomocą metody Naive i 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"
)
Wyjście :
Checking if 4 exists in list ( using loop ) : Element ExistsChecking if 4 exists in list ( using in ) : Element Exists
Metoda 3 : Użycie set()
+ in
Konwersja listy na zestaw, a następnie użycie w może być prawdopodobnie bardziej wydajne niż tylko użycie in
. Ale posiadanie wydajności na plus ma również pewne negatywy. Jednym z nich jest to, że kolejność listy nie jest zachowana, a jeśli zdecydujesz się wziąć nową listę dla niego, trzeba będzie użyć dodatkowego miejsca. Inną wadą jest to, że zestaw nie zezwala na duplikaty, a zatem zduplikowane elementy zostaną usunięte z oryginalnej listy.
Metoda 4: Korzystanie sort()
+ bisect_left()
Konwencjonalny sposób wyszukiwania binarnego testowania istnienia elementu, stąd lista musi być najpierw posortowana, a zatem nie zachowuje kolejności elementów. bisect_left()
zwraca pierwsze wystąpienie szukanego elementu i działa podobnie do funkcji lower_bound() w C++ STL.
Kod #2 : Demonstracja sprawdzania istnienia elementu na liście przy użyciu set()
+ in
i 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"
)