Você tem uma lista de objetos (clientes) e (por alguma razão) quer saber se algum deles possuem conta no gmail. Geralmente você faz um for, iterando pela lista e comparando individualmente a propriedade de email. Pois é, o Python tem uma função que faz isso para você, ou seja, a leitura fica melhor e você economiza linhas de código.
Caso precise revisar a sintaxe de loops em Python, você pode dar uma olhada neste post.
Para fins didáticos, vamos imaginar a seguinte classe:
class Cliente: nome = None sobrenome = None email = None def __init__(self, nome=None, sobrenome=None, email=None): self.nome = nome self.sobrenome = sobrenome self.email = email
Ok. Temos uma ‘classe base’ para este exemplo, vamos criar duas listas utilizando esta classe:
clientes_a = [ Cliente(nome="Joao", sobrenome="De Barro", email="jdb@hotmail.com"), Cliente(nome="Maria", sobrenome="De Barro", email="mdb@hotmail.com"), Cliente(nome="Albervaldo", sobrenome="Capivara", email="acapivara@bol.com.br"), Cliente(nome="Xenia", sobrenome="Silva", email="xsilva@zipmail.com.br") ] clientes_b = [ Cliente(nome="Mario", sobrenome="Ribeiro", email="mribeiro@aol.com"), Cliente(nome="Carolina", sobrenome="Silva", email="carol_silva@terra.com.br"), Cliente(nome="Shazam", sobrenome="Mata", email="shazam.m@gmail.com"), Cliente(nome="Anderson", sobrenome="Santos", email="andersons@outlook.com") ]
(Obs: Inventei todos os usuários. Em teoria, nenhum deles existe no mundo real, mas se tiver acertado algum, só avisar que eu mudo o post.)
Para fazer a verificação, vamos utilizar a função any, que recebe uma expressão como argumento e retorna True se existir alguma correspondência ou False se não existir. Veja a estrutura:
any(<comparação> for objeto in lista)
Adaptando esta sintaxe para a nossa necessidade:
any("gmail.com" in cliente.email for cliente in lista)
Obviamente, se isso fosse utilizado no mundo real, precisaríamos incluir algumas verificações extras, pois xpto@Gmail.com é diferente de xpto@gmail.com, mas vamos manter este exemplo simples. 🙂
Agora a utilização desta função para verificar se algum cliente possui conta no gmail:
#Verificando lista A if any("gmail.com" in cliente.email for cliente in clientes_a): print("Alguém na lista A possui conta no gmail!") else: print("Ninguém na lista A possui conta no gmail!") #Verificando lista B if any("gmail.com" in cliente.email for cliente in clientes_b): print("Alguém na lista B possui conta no gmail!") else: print("Ninguém na lista B possui conta no gmail!")
O fonte acima irá imprimir este resultado no console:
>>> Ninguém na lista A possui conta no gmail! >>> Alguém na lista B possui conta no gmail!
Espero ter ajudado.
Referências:
Latest posts by Breno RdV (see all)
- O que é Metaclass e como ela funciona. (#python #dev #metaclass) - janeiro 11, 2023
- Entenda a mágica dos Generators. (#python, #dev, #generator, #iterator) - dezembro 28, 2022
- Ordenando um DataFrame por múltiplas colunas. (#python #pandas #jupyter #dev #data) - agosto 3, 2022