Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Divisão de Listas

Boa tarde pessoal,

Estou com o seguinte desafio, Tenho 2 listas: uma de "Valores Total", e outra de "Valores Realizados". Com o tempo, esta lista de "Valores Total" estará todas no "Valores Realizados", mas por enquanto preciso separar esta lista de "valores Total"

Estou tentando dividir essa lista de "valores total" em 2 listas: c: uma lista que já está no "Valores Realizados" d: uma lista que ainda não está no "Valores Realizados"

Estou tentando varrer com um For In conforme abaixo, A lista c, está ok... mas a lista d, não está me trazendo os valores que contem na "Valores Total" e não está na "Valores Realizados"

total = np.array(([1,1,1], [2,2,2], [3,3,3], [4,4,4],[5,5,5],[6,6,6],[7,7,7],[8,8,8]))
real = np.array(([1,1,1], [3,3,3]))
c = []
d = []

for total in real:
  total in real
  c.append(total)
else:
  d.append(total)

RETORNO: c: [array([1, 1, 1]), array([3, 3, 3])] d: [array([3, 3, 3])]

Desde já, Obrigado!!

Angelo Silva.

2 respostas
solução!

Oi Angelo! Como você está?

No seu laço, quando você faz for total in real você está declarando uma variável chamada total para percorrer os elementos do seu array real. Mas, vejamos, se a sua intenção é dividir o seu array total em 2, o ideial seria que percorressemos os elementos pertencentes ao array total, certo?

Dessa forma, você poderia fazer assim:

import numpy as np

total = np.array(([1,1,1], [2,2,2], [3,3,3], [4,4,4],[5,5,5],[6,6,6],[7,7,7],[8,8,8]))
real = np.array(([1,1,1], [3,3,3]))
c = []
d = []

for elemento in total:
  if elemento in real:
    c.append(elemento)
  else:
    d.append(elemento)

Nesse laço, estamos declarando uma variável chamada elemento que será responsável por percorrer cada elemento pertencente ao array total e a partir dos condicionais if e else, verificar se esses elementos existem no array real.

Com isso, os valores da lista c e d serão:

Valores resultantes da lista c:

[array([1, 1, 1]), array([3, 3, 3])]

Valores resultantes da lista d:

[array([2, 2, 2]),
 array([4, 4, 4]),
 array([5, 5, 5]),
 array([6, 6, 6]),
 array([7, 7, 7]),
 array([8, 8, 8])]

Espero ter ajudado! Qualquer dúvida vamos nos falando por aqui, tá bom?

Bons estudos!

Oi Millena, boa noite!!

Obrigado pela solução!!! Deu certo

Atenciosamente,

Angelo Silva.