说我有一个清单a=[[1,2,3,4],[5,6,7,8],[9,10,11,12]]。我想创建一个新列表,b新列表中的每个值都是每个子列表的该索引位置中所有值的总和。所以在这种情况下它将是[15,18,21,24](1+5+9, 2+6+10, 3+7+11, 4+8+12) 。这就是我的代码目前的样子。
a=[[1,2,3,4],[5,6,7,8],[9,10,11,12]]
for i in range(len(a)+1):
b.append(sum(b[i] for b in a))
print(b)
>>> [15, 18, 21, 24]
我尝试使用列表理解来简化为:
b=[sum([c[i]] for c in a) for i in range(len(a)+1)]
但是我得到一个错误TypeError: unsupported operand type(s) for +: 'int' and 'list'
我尝试过用谷歌搜索这个问题,但我所能找到的只是人们将列表添加到整数。在此代码中,它应该只添加整数 ( a[c[i]])。我做错了什么?
编辑:正如 Marc Ittel 指出的那样,[c[i]]应该有c[i]. 然而,正如 Yatu 指出的那样,使用mapandzip更简单。也正如每个人都指出的那样,它不应该是len(a)+1,而是len(a[0])
非常感谢大家!
忽然笑
ITMISS
慕田峪9158850
相关分类