擅长:python、mysql、java
<p>我提出了一个更简洁的函数版本,它避免了使用字符串标记,这在Python中更快。你知道吗</p>
<p>您的代码抛出了索引错误,因为在上一次迭代中,您正在检查列表末尾的位置i+1处的内容。线路</p>
<pre><code>if expression[i+1] in operators:
</code></pre>
<p>抛出错误,因为在最后一次迭代中,i是最终的列表索引,您会检查不存在的列表项。你知道吗</p>
<pre><code>def list_builder(expression):
operators = ['+','-','*','/','^']
temp_string = ''
results = []
for item in expression:
if item in operators:
if temp_string:
results.append(temp_string)
temp_string = ''
results.append(item)
else:
if isNumber(item):
temp_string = ''.join([temp_string, item])
results.append(temp_string) #Put the last token in results
return results
</code></pre>