Vin*_*nci -2 python arrays list
有点写出代码.
例如,如果我有一个数组:
a = ([0, 0, 1, 2], [0, 1, 1, 0], [0, 0, 1, 0], [1, 0, 1, 3], [0, 1, 1, 3])
Run Code Online (Sandbox Code Playgroud)
如果我想添加每个项目的第一个元素,
如同返回0 + 0 + 0 + 1 + 0,0 + 1 + 0,0 + 0的列表...
我写了代码:
def test(lst):
sum = 0
test_lst = []
i = 0
while i in range(0, 4):
for j in range(0, len(lst)):
sum += lst[j][i]
test_lst.append(sum)
i += 1
return test_lst
Run Code Online (Sandbox Code Playgroud)
我得到索引大小错误.我怎么能这样做?
sum(zip(*a)[0])
Run Code Online (Sandbox Code Playgroud)
zip是一个函数,它接受任意数量的n长度序列并返回n个元组(以及其他内容).这些元组中的第一个具有传递给元组的第一个元素zip. sum将它们加在一起.
编辑:
在Python 3中,上述方法不起作用.使用:
sum(next(zip(*a)))
Run Code Online (Sandbox Code Playgroud)
代替.对于所有这些总和,
map(sum, zip(*a))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
297 次 |
| 最近记录: |