【发布时间】:2020-10-10 18:53:02
【问题描述】:
我已经在 Python 中编写了以下代码,但每次数组“堆栈”上出现错误时,除了初始分配之外,它还显示堆栈。错误是“'list' 的实例没有 'push' 成员”。
为了澄清,这段代码是遍历每个字符并检查它是否是一个左括号。它将推入堆栈,打开括号,我将通过 if/else 语句进行匹配,以查看它们是否匹配对。如果不匹配,则返回 false。
有谁知道为什么这段代码会在堆栈上出错?堆栈对我来说很新,它们没有意义。这是我用 Python 编写的第一段代码,所以我的语法也可能有错误。
我已从堆栈视频中获取代码的建议,并尝试将其转换为 python 以查看它的工作原理。他们使用的代码只是应该发生的事情的指导。
str = '()[(]())'
arr = ['(','[']
stack = []
for char in str:
if char in arr:
stack.push(char)
else:
if stack.empty():
top = stack.pop()
break
if(top == '[' and char != ']') or (top == '(' and char != ')'):
break
return stack.empty()
【问题讨论】:
-
请将完整的错误回溯添加到您的问题中。
-
注意:不要使用
str作为变量名。您可能会将其与str()混淆。 -
因为列表中没有
push()方法。请改用append() -
列表中没有
push和empty -
请edit您的问题澄清您要做什么。
list类型既没有push也没有empty方法。为什么你认为这应该有效?您认为最后的if声明中的top是什么?