我有这个代码接收我想要乘法的两个列表(假设是按电源顺序)。但是,我不断收到索引错误,我不明白为什么。
def multiply(a, b):
a.reverse()
b.reverse()
c=[]
al = len(a)
bl = len(b)
for i in range (al):
for j in range (bl):
k = a[i]*b[j]
ii=i+j
c[ii]+=k
c.reverse()
return (c)
答案 0 :(得分:1)
c[ii]+=k
这一行会导致错误,因为c [ii]超过了列表的末尾。
您无法通过指定超出范围的索引来增加列表的大小;你必须使用诸如append
或extend
之类的变异方法,或者只是创建已经存在其元素的列表。
c = [0 for _ in range(len(a) + len(b))]