我有C ++背景,对Python来说很新。我可能犯了一个简单的错误。
def make_polish(s) :
no_of_pluses = 0
polish_str = []
i = 0
for index in range(len(s)):
print s[index]
if '+' == s[index]:
no_of_pluses = no_of_pluses + 1
if '*' == s[index]:
polish_str[i] = s[index-1] """Index out of range error here."""
i = i + 1
polish_str[i] = s[index+1]
i = i + 1
polish_str[i] = '*'
i = i + 1
return polish_str
print make_polish("3*4")
答案 0 :(得分:8)
您的列表polish_str
始终为空。你需要这样做:
polish_str.append(s[index-1])
而不是:
polish_str[i] = s[index-1] # """Index out of range error here."""
i = i + 1
创建列表polish_str = []
时,它没有为它分配空间,就像在C / C ++中一样。它是一个动态数据结构。