Operadores in e not in em Python
Os operadores in e not in são muito úteis quando queremos verificar se um valor está presente ou não em uma lista (ou em outras sequências, como tuplas ou strings).
1. Operador in
O operador in é usado para verificar se um valor está presente em uma lista (ou qualquer sequência). Ele retorna True se o valor for encontrado, e False caso contrário.
Exemplo: Usando in
# Lista de exemplo
lista = [10, 20, 30, 40, 50]
# Verificando se o valor 20 está na lista
print(20 in lista) # Saída: True
# Verificando se o valor 60 está na lista
print(60 in lista) # Saída: False
Explicação:
- O operador
inverifica se o valor 20 está presente na lista e retornaTrue. - O valor 60 não está na lista, então o operador retorna
False.
2. Operador not in
O operador not in é o oposto do in. Ele verifica se um valor não está presente em uma lista (ou outra sequência). Ele retorna True se o valor não for encontrado, e False caso contrário.
Exemplo: Usando not in
# Lista de exemplo
lista = [10, 20, 30, 40, 50]
# Verificando se o valor 20 não está na lista
print(20 not in lista) # Saída: False
# Verificando se o valor 60 não está na lista
print(60 not in lista) # Saída: True
Explicação:
- O operador
not inverifica se o valor 20 não está na lista. Como o valor 20 está presente, ele retornaFalse. - O valor 60 não está na lista, então o operador retorna
True.
Eficiência de in e not in
Embora os operadores in e not in sejam bastante simples e úteis, é importante entender como eles funcionam por trás dos panos em Python:
- Listas: Quando você usa
inounot inem uma lista, Python precisa percorrer toda a lista para verificar se o valor está presente ou não. Isso significa que a complexidade de tempo desses operadores é O(n), onde n é o número de elementos na lista. Isso não é muito eficiente se a lista for muito grande, porque Python vai verificar elemento por elemento até encontrar o valor ou chegar ao final da lista.
Exemplo de Eficiência:
import time
# Lista com 1 milhão de elementos
lista_grande = list(range(1, 10**6))
# Verificando presença de um valor na lista grande
start = time.time()
print(999999 in lista_grande) # True
print("Tempo de execução:", time.time() - start)
start = time.time()
print(1000000 in lista_grande) # False
print("Tempo de execução:", time.time() - start)
Explicação:
- Quando você usa
inem uma lista muito grande, Python verifica cada elemento até encontrar o valor ou chegar ao final da lista. - Isso pode ser demorado em listas grandes, pois a operação é linear.
Quando Usar in e not in
Esses operadores são ótimos para listas pequenas ou quando você precisa de uma verificação rápida e simples, mas se estiver lidando com listas muito grandes e precisar fazer muitas verificações, você pode considerar o uso de estruturas de dados mais eficientes, como conjuntos (sets), que têm uma verificação de presença mais rápida.
Resumo
in: Verifica se um valor está presente em uma lista.not in: Verifica se um valor não está presente em uma lista.- Eficiência: A operação é O(n) em listas, ou seja, pode ser lenta em listas muito grandes.
Use esses operadores para verificação rápida e simples de valores em listas, mas tenha em mente que podem não ser eficientes para listas grandes.
Deixe um comentário
Você precisa fazer o login para publicar um comentário.