fgam Postado Fevereiro 20, 2017 Denunciar Share Postado Fevereiro 20, 2017 Amigos, estou tentando criar sublistas a partir de uma matriz para segmentar células que estão conectadas, como por exemplo a matriz abaixo: 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. Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
fgam
Amigos, estou tentando criar sublistas a partir de uma matriz para segmentar células que estão conectadas, como por exemplo a matriz abaixo:
Dessa matriz obtenho essa lista com as células pintadas:
Desejo como resultado, sublistas com as células amarelas, agrupadas assim:
Não sei se é possível, mas até o momento, com a função abaixo:
Eu consigo esse resultado somente:
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
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.