GeeksforGeeks

Seznam je důležitý kontejner v Pythonu, protože uchovává prvky všech datových typů jako kolekci. Znalost některých operací se seznamy je pro každodenní programování nezbytná. Tento článek pojednává o jedné ze základních operací se seznamem o způsobech kontroly existence prvku v seznamu.

Způsob 1 : Naivní způsob

V Naivním způsobu se jednoduše použije smyčka, která iteruje přes všechny prvky a kontroluje existenci cílového prvku. Jedná se o nejjednodušší způsob kontroly existence prvku v seznamu.

Metoda 2 : Použití in

Python in je nejběžnější způsob kontroly, zda prvek v seznamu existuje, nebo ne. Tento konkrétní způsob vrací True, pokud prvek v seznamu existuje, a False, pokud prvek v seznamu neexistuje. Seznam nemusí být setříděný, aby bylo možné tento přístup kontroly praktikovat.
Kód č. 1 : Demonstrace kontroly existence prvku v seznamu pomocí naivní metody a 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")



Výstup :

Checking if 4 exists in list ( using loop ) : Element ExistsChecking if 4 exists in list ( using in ) : Element Exists

Metoda 3 : Použití set() + in

Převedení seznamu na množinu a následné použití in může být možná efektivnější než pouze použití in. Mít efektivitu za plus má však i určitá negativa. Jedním z nich je, že pořadí seznamu není zachováno, a pokud byste se rozhodli pro pořízení nového seznamu, museli byste použít další místo. Další nevýhodou je, že množina neumožňuje duplicitu, a proto by se duplicitní prvky z původního seznamu odstranily.

Metoda 4 : Použití sort() + bisect_left()

Konvenční způsob binárního vyhledávání testuje existenci prvků, proto musí být seznam nejprve seřazen, a tudíž není zachováno pořadí prvků. bisect_left() vrací první výskyt hledaného prvku a pracuje podobně jako lower_bound() v C++ STL.
Kód č. 2 : Demonstrace ověření existence prvku v seznamu pomocí set() + in a 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")



Štítky článků :
Značky praxe :

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.