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"
)