不支持的操作数int和str?

时间:2016-01-12 19:56:34

标签: python python-3.x

我正在尝试添加列表中的所有元素,但它会不断出现int和string的不受支持的操作数吗?

total_years = 0
for i in range(len(str(years_list))):
    total_years += str(years_list[i])
print(years_total)

如果我使用int它会出现IndexError:list index超出范围

1 个答案:

答案 0 :(得分:1)

total_years是一个整数,str(years_list[i])是一个字符串。您不能将字符串添加到整数。

当您使用int时,您会得到IndexError,因为您正在迭代years_list的末尾。列表的字符串表示通常比列表的实际长度长得多。防爆。 [1,2,3]的长度为3,但str([1,2,3])的长度为9,因为它会计算逗号,括号和空格。也许你打算做for i in range(len(years_list))

无论如何,你不需要任何这种改变类型的东西。如果要添加列表的所有元素,请使用sum

total_years = sum(years_list)