Ir para conteúdo
Fórum Script Brasil
  • 0

Como criar sublistas obedecendo a conexão de células em uma matriz


fgam

Pergunta

Amigos, estou tentando criar sublistas a partir de uma matriz para segmentar células que estão conectadas, como por exemplo a matriz abaixo: 

matriz utilizada no exemplo

Dessa matriz obtenho essa lista com as células pintadas:

lista = [[1, 1], [2, 1], [2, 2], [2, 3], [2, 5], [2, 6], [3, 2], [3, 5], [3, 6], [6,1], [6, 4], [6, 5], [7,1], [7, 4], [7, 5]]

Desejo como resultado, sublistas com as células amarelas, agrupadas assim:

[[1, 1], [2, 1], [2, 2], [2, 3], [3, 2]],
[[2, 5], [2, 6], [3, 5], [3, 6]]
[[6,1], [7,1]]
[[6, 4], [6, 5], [7, 4], [7, 5]]

Não sei se é possível, mas até o momento, com a função abaixo:

def group_by_diff(group, diff=1):
    container = []
    new_group = [group[0]] 
    for i in range(1,len(group)):
        if((group[i][0] - group[i-1][0] > diff) or (group[i][1] - group[i-1][1] > diff)):
            container.append(new_group)
            new_group = [group[i]]
        else:
            new_group.append(group[i])
    if(len(new_group) > 0):
        container.append(new_group)
    return container

Eu consigo esse resultado somente:

[[1, 1], [2, 1], [2, 2], [2, 3]], 
[[2, 5], [2, 6], [3, 2]], 
[[3, 5], [3, 6]], 
[[6, 1]], 
[[6, 4], [6, 5], [7, 1]], 
[[7, 4], [7, 5]]

O que não atende, nesse exemplo criaram 6 sublistas, onde na verdade só deve ser criada 4 aglomerações, de acordo com a imagem.

Espero ter me feito entender. De já agradeço.

 

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,7k
×
×
  • Criar Novo...