Циклы. Не могу понять в чем ошибка
#1. Дана строка, представляющая из себя некоторое выражение. Проверить корректность использования скобок в заданном выражении: #a. количество открывающихся скобок каждого вида должно соответствовать количеству закрывающихся скобок этого же вида; #b. порядок следования открывающихся и закрывающихся скобок должен быть верным.
l = "aaa(bc{def}(ggg(hh))"
a = []
braces = {']': '[', '}': '{', ')': '('}
for i in l:
if i in braces.values():
a.append(i)
print(a)
elif i in braces.keys():
if len(a) == 0 or braces[i] != a.pop():
print("Выражение неправильное")
break
else:
if len(a) > 0:
print("Выражение неправильное")
else:
print("Выражение правильное")
не могу понять почему в выводе ошибка:
['('] ['(', '{'] ['(', '('] ['(', '(', '(']
Это вывод. Не могу понять почему не добавляет фигурную скобку
Источник: Stack Overflow на русском