Como Utilizar/Corrigir Python - Explicado: O Python não está incluso
Operadores “in” e “not in” do Python: Verificação de Membros
Os operadores in
e not in
do Python permitem que você determine rapidamente se um determinado valor está ou não está presente em uma coleção de valores. Esse tipo de verificação é comum na programação e é geralmente conhecido como um teste de associação em Python. Portanto, esses operadores são conhecidos como operadores de associação.
Neste tutorial, você aprenderá a:
- Realizar testes de associação usando os operadores
in
enot in
. - Usar
in
enot in
com diferentes tipos de dados. - Trabalhar com
operator.contains()
, a função equivalente ao operadorin
. - Dar suporte para
in
enot in
em suas próprias classes.
Começando com Testes de Associação no Python
Às vezes, você precisa descobrir se um valor está presente em uma coleção de valores ou não. Em outras palavras, você precisa verificar se um determinado valor é ou não um membro de uma coleção de valores. Esse tipo de verificação é comumente conhecido como um teste de associação.
Considere a seguinte função is_member()
:
Vamos ver essa função em ação com alguns exemplos:
Nesses exemplos, a função is_member()
é usada para verificar se um número ou um nome está presente em uma lista de números ou nomes, respectivamente. A função retorna True
se o valor estiver presente e False
caso contrário.
Agora, vamos explorar os operadores in
e not in
, que são a maneira mais simples e elegante de realizar os testes de associação no Python.
Usando os Operadores in
e not in
com Diferentes Tipos de Dados
Os operadores in
e not in
são operadores de associação que podem ser usados com diferentes tipos de dados no Python. Eles permitem que você verifique se um valor está presente em uma determinada coleção ou não.
Listas, Tuplas e Intervalos
Listas, tuplas e intervalos são sequências no Python e podem ser verificadas usando os operadores in
e not in
. Veja alguns exemplos:
Nesses exemplos, os operadores in
e not in
são usados para verificar se um determinado valor está presente em uma lista, tupla ou intervalo. Eles retornam True
se o valor estiver presente e False
caso contrário.
Strings
Em Python, as strings são sequências de caracteres e também podem ser verificadas usando os operadores in
e not in
. Veja alguns exemplos:
Nesses exemplos, os operadores in
e not in
são usados para verificar se uma determinada substring está presente em uma string. Eles retornam True
se a substring estiver presente e False
caso contrário.
Geradores
Os geradores são objetos especiais no Python que produzem um valor de cada vez, em vez de armazenar todos os valores em memória. Você pode verificar a associação com geradores usando os operadores in
e not in
. Veja um exemplo:
Nesse exemplo, o operador in
é usado para verificar se um determinado valor está presente no gerador. Ele retorna True
se o valor estiver presente e False
caso contrário. É importante observar que, após um valor ser consumido de um gerador, ele não pode ser verificado novamente, pois o gerador avança para os próximos valores.
Dicionários e Conjuntos
Os dicionários e conjuntos são coleções no Python e também podem ser verificados usando os operadores in
e not in
. Veja alguns exemplos:
Nesses exemplos, os operadores in
e not in
são usados para verificar se uma determinada chave está presente em um dicionário ou se um determinado valor está presente em um conjunto. Eles retornam True
se a chave ou o valor estiver presente e False
caso contrário.
Colocando os Operadores in
e not in
do Python em Ação
Os operadores in
e not in
do Python são muito poderosos e podem ser usados para várias finalidades, como substituir operadores encadeados ou realizar testes de associação eficientes.
Substituindo Operadores Encadeados
Os operadores in
e not in
podem substituir facilmente os operadores encadeados or
em alguns casos. Veja um exemplo:
Nesse exemplo, os operadores in
e not in
são usados para verificar se um determinado valor está presente em uma lista. Os operadores encadeados or
são usados para combinar várias verificações em uma única expressão, retornando True
se qualquer uma das verificações for verdadeira e False
caso contrário.
Usando os operadores in
e not in
, podemos simplificar essas verificações encadeadas da seguinte maneira:
Essa forma mais legível e concisa de escrever as verificações de associação pode tornar seu código mais fácil de entender e manter.
Escrevendo Testes de Associação Eficientes
Ao realizar testes de associação em uma coleção, é importante considerar o desempenho do seu código. Usar os operadores in
e not in
é uma maneira eficiente de realizar esses testes.
Em vez de iterar manualmente sobre a coleção e comparar cada valor com o valor alvo, você pode usar os operadores in
e not in
para realizar a verificação de associação de forma mais rápida e direta.
Por exemplo, considere o seguinte trecho de código:
Nesse exemplo, você itera manualmente sobre a lista de números e verifica se o número está presente. Se o valor estiver presente, a variável is_present
é definida como True
e o loop é interrompido. Em seguida, você verifica o valor de is_present
para determinar se o valor está presente ou não.
Você pode simplificar esse trecho de código usando o operador in
da seguinte maneira:
Nesse exemplo, o operador in
é usado para verificar se o valor está presente na lista de números. Se o valor estiver presente, a mensagem adequada é exibida. Caso contrário, outra mensagem é exibida. Essa forma simplificada é mais curta e mais eficiente em termos de tempo de execução.
Usando operator.contains()
para Testes de Associação
Além dos operadores in
e not in
, Python também fornece uma função equivalente chamada operator.contains()
.
Essa função pode ser usada para realizar testes de associação de forma semelhante ao operador in
. Veja um exemplo:
Nesse exemplo, a função operator.contains()
é usada para verificar se o valor está presente na lista de números. A função retorna True
se o valor estiver presente e False
caso contrário.
A função operator.contains()
pode ser útil em algumas situações em que você precisa passar uma função como argumento, como em expressões lambda
.
Suportando Testes de Associação em Classes Definidas pelo Usuário
Você também pode fornecer suporte para os operadores in
e not in
em suas próprias classes definidas pelo usuário, implementando os métodos especiais __contains__()
e __iter__()
. Veja um exemplo:
Nesse exemplo, a classe Range
representa um intervalo de números. O método __contains__()
verifica se um determinado valor está presente no intervalo e retorna True
ou False
de acordo. O método __iter__()
retorna um iterador que itera sobre o intervalo de números.
Essa implementação permite que você use os operadores in
e not in
com objetos da classe Range
e também permite que você itere sobre os valores do intervalo.
Conclusão
Os operadores in
e not in
do Python são uma ferramenta poderosa para realizar testes de associação em uma coleção de valores. Eles fornecem uma maneira eficiente e concisa de verificar se um valor está presente ou não, seja em listas, strings, dicionários ou até mesmo em suas próprias classes personalizadas.
Ao usar esses operadores, você pode melhorar a legibilidade e a eficiência do seu código Python, tornando-o mais fácil de entender e manter. Portanto, considere sempre o uso dos operadores in
e not in
ao realizar testes de associação em suas aplicações Python.