我要做的是将国家与前两个国家进行比较,看看它们是否完全不同。我很难将值存储在列表中然后进行比较。我已经尝试了字符串,但似乎无法正确使用它。
不支持的操作数类型 - :' list'和' int' 是我得到的错误。解决这个问题的任何提示?
def purchase(amount, day, month, country):
global history, owed, last_country
owed += amount
history += [(days_in_months(month - 1) + day)]
last_country += [country]
if history[len(history) - 2] > history[len(history) - 1]:
return str(error)
elif all_three_different(country, last_country[len(last_country)-1], last_country[len(last_country-2)]) == True:
return str(error)
else:
return True
答案 0 :(得分:1)
您正试图从列表中减去2:
last_country[len(last_country-2)]
请注意括号! last_country-2
表达式是 len()
次调用中的。你可能打算这样做:
last_country[len(last_country)-2]
你根本不需要使用长度;只是负面指数:
last_country[-2]
这可以获得完全相同的值;列表中的1但最后一个值。索引时会自动从列表长度中减去负索引。
您不需要做的其他事情就是使用== True
;这就是if
/ elif
声明已经为你做的事情;把它关掉:
if history[-2] > history[-1]:
return str(error)
elif all_three_different(country, last_country[-1], last_country[-2]):
return str(error)
else:
return True