Интересно, что я здесь делаю не так, я пытаюсь сравнить иерархии, чтобы я мог связывать элементы с тем же именем вместе с тегами PSR, при формировании моих списков из двух отдельных иерархий (first_sel_list и second_sel_list) я получаю дополнительные результаты в моих сокращенных списках .

    first_sel_list = ['First_Null', 'Cube', 'Cube.1', 'Cube.2', 'Cube.3', 'Cube.4', 'Cube.5', 'Cube.6', 'Ignore_Top_0', 'Ignore_Top_1', 'Ignore_Top_2', 'Ignore_Top_Child_00', 'Ignore_Top_Child_01', 'Ignore_Top_Child_02', 'Ignore_Top_Child_03', 'Cube.7']
    
    second_sel_list = ['Second_Null', 'Cube', 'Cube.1', 'Cube.2', 'Cube.3', 'Shit_Bot_0', 'Ignore_Bot_1', 'Ignore_Bot_2', 'Cube.4', 'Cube.6', 'Cube.7', 'Cube.5']
    
    link_list = ['Cube', 'Cube.1', 'Cube.2', 'Cube.3', 'Cube.4', 'Cube.5', 'Cube.6', 'Cube.7']
    
    for name in first_sel_list:
        if name not in link_list:
            first_sel_list.remove(name)
    for name in second_sel_list:
        if name not in link_list:
            second_sel_list.remove(name)
                
    
    print ('LINK LIST ' + str(link_list))        
    print ('Edited First list ' + str(first_sel_list))
    print ('Edited Second list ' + str(second_sel_list))

Выход:

LINK LIST ['Cube', 'Cube.1', 'Cube.2', 'Cube.3', 'Cube.4', 'Cube.5', 'Cube.6', 'Cube.7']
Edited First list ['Cube', 'Cube.1', 'Cube.2', 'Cube.3', 'Cube.4', 'Cube.5', 'Cube.6', 'Ignore_Top_1', 'Ignore_Top_Child_00', 'Ignore_Top_Child_02', 'Cube.7']
Edited Second list ['Cube', 'Cube.1', 'Cube.2', 'Cube.3', 'Ignore_Bot_1', 'Cube.4', 'Cube.6', 'Cube.7', 'Cube.5']

Ожидаемый результат:

LINK LIST ['Cube', 'Cube.1', 'Cube.2', 'Cube.3', 'Cube.4', 'Cube.5', 'Cube.6', 'Cube.7']
Edited First list ['Cube', 'Cube.1', 'Cube.2', 'Cube.3', 'Cube.4', 'Cube.5', 'Cube.6', 'Cube.7']
Edited Second list ['Cube', 'Cube.1', 'Cube.2', 'Cube.3', 'Cube.4', 'Cube.6', 'Cube.7', 'Cube.5']

Изображение Иерархии:

enter image description here

3
cstantonart 16 Июл 2020 в 19:14

1 ответ

Лучший ответ

Попробуйте это вместо предложения not in. Вместо того, чтобы беспокоиться об элементах, которых нет в списке, которые иногда могут вызывать проблемы с удалением, вы только захватываете элементы с прямой ссылкой. Это немного безопаснее.

First_sel_list = [имя для имени в first_sel_list, если имя в link_list]

Second_sel_list = [имя для имени в second_sel_list, если имя в списке_ссылки]

2
stephen coffin 16 Июл 2020 в 17:00