为什么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)
。
是改变序列/映射项功能,方法不会返回None
:list.sort
,list.append
,dict.clear
…
没有直接关系,但是请参见为什么list.sort()不返回排序后的列表?。
以上是 为什么list.append()返回None? 的全部内容, 来源链接: utcz.com/qa/409605.html