为什么list.append()返回None?

我正在尝试使用Python计算后缀表达式,但是它不起作用。我认为这可能是与Python相关的问题。

有什么建议?

expression = [12, 23, 3, '*', '+', 4, '-', 86, 2, '/', '+']

def add(a,b):

return a + b

def multi(a,b):

return a* b

def sub(a,b):

return a - b

def div(a,b):

return a/ b

def calc(opt,x,y):

calculation = {'+':lambda:add(x,y),

'*':lambda:multi(x,y),

'-':lambda:sub(x,y),

'/':lambda:div(x,y)}

return calculation[opt]()

def eval_postfix(expression):

a_list = []

for one in expression:

if type(one)==int:

a_list.append(one)

else:

y=a_list.pop()

x= a_list.pop()

r = calc(one,x,y)

a_list = a_list.append(r)

return content

print eval_postfix(expression)

回答:

只需替换a_list = a_list.append(r)a_list.append(r)

是改变序列/映射项功能,方法不会返回Nonelist.sortlist.appenddict.clear

没有直接关系,但是请参见为什么list.sort()不返回排序后的列表?。

以上是 为什么list.append()返回None? 的全部内容, 来源链接: utcz.com/qa/409605.html

回到顶部