def somalist (lista):
listasoma = [0,0,0,0,0,0,0,0,0,0,0]
for i in lista:
for g in i:
if i.index(g) != 0 and i.index(g) != 1 and i.index(g) != 2 and i.index(g) != 3:
listasoma[i.index(g)] += g
else:
listasoma[i.index(g)] = g
print(listasoma)
return(listasoma)
x = [[1,2,3,4,5,6,7,8,9,10,11],[1,2,3,4,5,6,7,8,9,10,11],[1,2,3,4,5,6,7,8,9,10,11]]
print(somalist(x))
就是这个函数,它对每个子列表求和,但它保留索引[0]、[1]、[2]和[3]的值,并对其他子列表求和。在这个例子中,我将使用list x
,在这个list中函数正常工作。程序的退出是:
[1, 2, 3, 4, 32, 18, 21, 24, 27, 30, 22]
就是我说的,它保留成员[0]、[1]、[2]、[3],并对每个子列表的其他索引求和
但当我们多次使用某个数字时,它就失败了
使用:X = [[1,2,3,4,5,6,7,8,9,10,11],[1,2,3,4,**6**,6,7,8,9,10,11],[1,2,3,4,5,6,7,8,9,10,11]]
the 6 (index 4) in second sublist was writen twice (the another at the index 5 at the same sublist)
出口是:[1, 2, 3, 4, **22**, 12, 21, 24, 27, 30, 33]
这是错误的
正确的出口应该是:[ 1, 2, 3, 4, 16, 18, 21, 24, 27, 30, 33]
有人能告诉我我的代码哪里错了吗
我建议完全放弃
index()
方法这适用于具有重复元素的
list
相关问题 更多 >
编程相关推荐