Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Como adicionar elementos em uma lista a partir de outra

class Dados:
        def __init__(self, vne, tae):
            self.vne = vne
            self.tae = tae

        def principal(self):
            for i in range(len(self.tae)):
                print(self.vne.append(round(self.vne[i] * (100 - self.tae[i]) / 100, 8)))

    info = Dados([1000], [0, 20, 25, 33.3333, 50, 100])

    print(info.principal())
output:
None
None
None
None
None
None
None

Resultado desejado: [1000, 1000.0, 800.0, 600.0, 400.0002, 200.0001, 0.0]

1 resposta
solução!

Olá Priscila, tudo bem com você?

Meus parabéns pela implementação do código e por se desafiar, fico feliz que tenha compartilhado com a comunidade do fórum Alura.

Como a operação de adição (append) não retorna um valor, a cada repetição do laço for está sendo impresso none.

Para que sejam apresentados os valores, será necessário modificarmos o código de forma que o print seja realizado apenas quando terminar a adição dos novos valores para a tabela self.vne, deixando assim o print fora do laço de repetição for. Ficando como abaixo.

class Dados:
    def __init__(self, vne, tae):
        self.vne = vne
        self.tae = tae

    def principal(self):
        for i in range(len(self.tae)):
            self.vne.append(round(self.vne[i] * (100 - self.tae[i]) / 100, 8))
        print(self.vne)


info = Dados([1000], [0, 20, 25, 33.3333, 50, 100])
info.principal()

Resultado


[1000, 1000.0, 800.0, 600.0, 400.0002, 200.0001, 0.0]

Foi retirado o print da expressão de cálculo e adição dos resultados à primeira tabela, e adicionado uma nova impressão da lista self.vne fora do laço for.

Lembre-se que pode contar sempre com o fórum Alura, seja para compartilhar o seu desenvolvimento ou para tirar suas dúvidas.

Fico à disposição.

Abraços e bons estudos.

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!