def divisao(self, coluna, valor, valores=None): if valores == None: valores = self.dados() escolhidos = [] outros = [] for v in valores: if v[coluna] == valor: escolhidos.append(v) else: outros.append(v) d = [] g1 = Galho(coluna, valor, self.nvl) g1.registrarValoresInteressantes(escolhidos) g1.registrarValoresNaoInteressantes(outros) d.append(g1) return d
def nova_divisao(self, coluna, valor, galhos): self.nvl += 1 for galho in galhos: valores = [] if len(galho.filhos) > 0: valores = galho.filhos else: valores = galhos for filho in valores: escolhidos = [] outros = [] g1 = Galho(coluna, valor, self.nvl) valores = filho.interessa for v in valores: if v[coluna] == valor: escolhidos.append(v) else: outros.append(v) g1.registrarValoresInteressantes(escolhidos) g1.registrarValoresNaoInteressantes(outros) galho.adicionarFilho(g1) for galho in galhos: valores = [] if len(galho.filhos) > 0: valores = galho.filhos else: valores = galhos for filho in valores: escolhidos = [] outros = [] g1 = Galho(coluna, valor, self.nvl) valores = filho.n_interessa for v in valores: if v[coluna] == valor: escolhidos.append(v) else: outros.append(v) g1.registrarValoresInteressantes(escolhidos) g1.registrarValoresNaoInteressantes(outros) galho.adicionarFilho(g1) return galhos