Проблемы вызова значений друг над другом в матрице Python

Это мой первый пост, поэтому дайте мне знать, если мне нужно что-то изменить!

Я создал сетку на основе следующего ввода:

1;2;12;12;12  
11;12;2;12;12  
1;2;12;2;12  
11;12;2;1;2  

Для создания этой сетки я использовал этот фрагмент кода:

node = hou.pwd()
geo = node.geometry()

text = node.evalParm('text')  
lines = text.splitlines()  
numbers = [map(int, line.split(';') ) for line in lines]  

geo.addAttrib(hou.attribType.Point, 'instance', -1)  

for row, n in enumerate(numbers):  
    for col, value in enumerate(n):  
    pos = (col, 0.0, row)  
    pt_add = geo.createPoint()  
    pt_add.setAttribValue('instance', value)  
    pt_add.setPosition(pos)   

Это прекрасно работает и создает сетку с точками, разнесенными на 1, и с правильным значением. Теперь я хочу сделать следующее:

if value != 0:
        a = #Value of current index
        b = #Value of index above
        if len(a) < len(b):
            if a[-len(a)] == b[-len(a)]:            
                a = '0'
                b = b
            else:
                pass
        else: 
            if len(a)== len(b):
                if len(a) < 2:
                    pass
                else:
                    a = '0'
                    b = b + 'x'
            else:
                if a[-len(a)] == b[-len(a)]: 
                    b = a + 'y'
                    a = '0'
                else:
                    pass 

Теперь я предполагаю, что мне нужно снова просмотреть строки и столбцы, но если я сделаю это с помощью цикла for, то это не позволит мне вызвать значение индекса выше в этом столбце. Может ли кто-нибудь помочь мне понять это? И мне нужно изменить значение "instance" на новое значение.

Как краткое объяснение того, чего я пытаюсь достичь: Пример изображения

Редактировать: добавление чего-то отличного от x или y к int, чтобы различать "11" с 1, измененным на "0" под ним, и "11" с 2 или 3, замененным на "0" под ними.

0 ответов

Другие вопросы по тегам