1
resposta

Otimização de código. Verificar em varias listas

Bom dia,

Gostaria de saber se há alguma forma melhor de verificar um valor em varias listas diferentes. Unica forma que consegui fazer isso foi criando 3 IF.

class Pedido:
    def __init__(self, sabor, quantidade):

        self.sabor = sabor.upper().strip()
        self.quantidade = quantidade
        self._simples = ['MORANGO', 'MARACUJA', 'BANANA', 'ABAXACI', 'TUTI FRUTI']
        self._intermediario = ['CHOCOLATE', 'COCO', 'LEITE CONDENSADO', 'BLUE ICE', 'TORTA ALEMA']
        self._especial = ['BRIGADEIRO', 'ACAI']
        self._valor = 0

    def calcular_pedido(self):
        valor_simples = 2
        valor_intermediario = 4
        valor_especial = 6

        if self.sabor in self._simples:
            self._valor += valor_simples

        elif self.sabor in self._intermediario:
            self._valor += valor_intermediario

        elif self.sabor in self._especial:
            self._valor += valor_especial

        else:
            print('nao esta em nenhuma')
1 resposta

Olá,

uma das maneiras seria juntar as listas...

valor in lista1 + lista2 + lista3

mas entendo que não te atende pois vc quer saber em qual lista o valor está.

Uma forma de atender o sua necessidade seria mais ou menos assim:

flavour = 'CHOCOLATE'
value = 0

lists = {
    '2': ['MORANGO', 'MARACUJA', 'BANANA', 'ABAXACI', 'TUTI FRUTI'],
    '4': ['CHOCOLATE', 'COCO', 'LEITE CONDENSADO', 'BLUE ICE', 'TORTA ALEMA'],
    '6': ['BRIGADEIRO', 'ACAI'],
}

for key, _list in lists.items():    
    if flavour in _list:
        value += int(key)

print(value)

[]'s