Lista é um recipiente importante em python como se armazena elementos de todos os tipos de dados como uma coleção. O conhecimento de certas operações da lista é necessário para a programação diária. Este artigo discute uma das operações básicas da lista de formas de verificar a existência do elemento em lista.
Método 1 : Método Naive
No método Naive, utiliza-se facilmente um loop que itera todos os elementos para verificar a existência do elemento alvo. Esta é a maneira mais simples de verificar a existência do elemento na lista.
Método 2 : Usando in
Python in é a maneira mais convencional de verificar se um elemento existe ou não na lista. Esta forma particular retorna True se o elemento existe na lista e False se o elemento não existe na lista. Lista não precisa ser ordenada para praticar esta abordagem de verificação.
Código #1 : Demonstrando para verificar a existência do elemento na lista usando o método Naive e 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" )
Saída :
Checking if 4 exists in list ( using loop ) : Element ExistsChecking if 4 exists in list ( using in ) : Element Exists
Método 3 : Usando set() + in
Converter a lista em conjunto e depois usar in pode possivelmente ser mais eficiente do que usar apenas in. Mas ter eficiência por um plus também tem certos negativos. Um deles é que a ordem da lista não é preservada, e se você optar por levar uma nova lista para ela, você precisaria usar espaço extra. Outra desvantagem é que o conjunto não permite duplicidade e, portanto, elementos duplicados seriam removidos da lista original.
Método 4 : Usando sort() + bisect_left()
A forma convencional de pesquisa binária para testar a existência de elementos, portanto a lista tem que ser ordenada primeiro e, portanto, não preservar a ordenação dos elementos. bisect_left() retorna a primeira ocorrência de elemento a ser encontrado e tem trabalho similar a lower_bound() em C++ STL.
Código #2 : Demonstrando para verificar existência de elemento em lista usando set() + in e 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" )