@vagitaku

Как перебрать два массива и найти совпадения (и потом изменить цвет слова)?

Есть два массива из слов(left_text и right_text). Нужно перебрать первый на совпадения во втором. И если есть совпадения выполнить определенные действия.
def compare():
    if win.left_textBrowser.toPlainText() != '' and win.right_textBrowser.toPlainText() != '':
        for x in left_text:
            print(str(x) + ' check')
            if x in right_text:
                print(str(x) + ' ok')
                win.left_textBrowser.setText(win.left_textBrowser.toPlainText() + green_text + str(x) + green_text_end)
            else:
                print(str(x) + ' no')
                win.right_textBrowser.setText(win.right_textBrowser.toPlainText() + str(x))


Но принт я вижу такой:

...массив 'Были', 'подобранны', 'оптимальные', 'технологи', 'и', 'решения', 'для', 'данной', 'задачи.'] check
...массив 'Были', 'подобранны', 'оптимальные', 'технологи', 'и', 'решения', 'для', 'данной', 'задачи.'] ok


Что я делаю не так? В for вроде правильно беру каждое слово из списка, а в if проверяю на совпадение этого слова в right_text. Дальше, если есть совпадения, перед вставкой слова должно вставится green_text и после green _text_end.
green_text = '<span style=\" font-size:8pt; font-weight:600; color:#00ff00;\" >'
green_text_end = '</span>'

Но хоть я и загружаю одинаковые текста, цвет не меняется. Решил посмотреть в чем дело, с помощью print, и вот. Что-то не так с переборкой массива.
  • Вопрос задан
  • 224 просмотра
Пригласить эксперта
Ответы на вопрос 2
@kova1ev
не совсем понял, что вы делаете, но список из совпадающих элементов двух списков можно найти так:
result = list(set(left_text) & set(right_text))

потом, возможно, так:
for x in result:
    win.left_textBrowser.setText(win.left_textBrowser.toPlainText() + green_text + str(x) + green_text_end)
Ответ написан
LaRN
@LaRN
Senior Developer
Попробуйте сделать print(left_text) может у вас left_text не список из строк, а список с вложенным списком строк.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы