在计算了几个值并获得了这些值之后,我还需要计算更多,但我不知道该怎么做。
[array([59, 24, 9, 3, 1, 0, 0, 0, 0, 0, 0, 0], dtype=int64),
array([118, 48, 19, 7, 3, 1, 0, 0, 0, 0, 0, 0],
dtype=int64),
array([178, 72, 29, 11, 4, 1, 0, 0, 0, 0, 0, 0],
dtype=int64),
array([237, 96, 39, 15, 6, 2, 1, 0, 0, 0, 0, 0],
dtype=int64),
array([296, 120, 49, 19, 8, 3, 1, 0, 0, 0, 0, 0],
dtype=int64),
array([356, 144, 58, 23, 9, 3, 1, 0, 0, 0, 0, 0],
dtype=int64),
array([415, 168, 68, 27, 11, 4, 1, 0, 0, 0, 0, 0],
dtype=int64),
array([474, 193, 78, 31, 12, 5, 2, 0, 0, 0, 0, 0],
dtype=int64),
array([534, 217, 88, 35, 14, 5, 2, 0, 0, 0, 0, 0],
dtype=int64),
array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], dtype=int64),
array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], dtype=int64),
array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], dtype=int64)]
现在我需要应用计算并获得输出
59
142(got it by 24+118)
235(got it by 9+48+178)
331(got it by 3+19+72+237)
429(got it by 1+7+29+96+296)
...
..
.
我期待上述值作为我的输出。
答案 0 :(得分:2)
已经提供了使用列表理解的解决方案,并且肯定会产生预期的结果。但是,根据我的时间安排,它的效率不是很高。所以,为了简单起见,我想出了这个:
for i in range(len(a)):
x = a[0][i]
r = 1
for c in range(i - 1, -1, -1):
x += a[r][c]
r += 1
print(f'x={x}')
答案 1 :(得分:1)
试试这个:
def find_weird_sum(mtr):
for i in range(len(mtr)):
intermediate_sum = 0
for j in range(i+1):
intermediate_sum += mtr[j][i - j]
print(intermediate_sum)
find_weird_sum(x)
答案 2 :(得分:0)
from pandas import array
x = [array([59, 24, 9, 3, 1, 0, 0, 0, 0, 0, 0, 0], dtype="int64"),
array([118, 48, 19, 7, 3, 1, 0, 0, 0, 0, 0, 0],
dtype="int64"),
array([178, 72, 29, 11, 4, 1, 0, 0, 0, 0, 0, 0],
dtype="int64"),
array([237, 96, 39, 15, 6, 2, 1, 0, 0, 0, 0, 0],
dtype="int64"),
array([296, 120, 49, 19, 8, 3, 1, 0, 0, 0, 0, 0],
dtype="int64"),
array([356, 144, 58, 23, 9, 3, 1, 0, 0, 0, 0, 0],
dtype="int64"),
array([415, 168, 68, 27, 11, 4, 1, 0, 0, 0, 0, 0],
dtype="int64"),
array([474, 193, 78, 31, 12, 5, 2, 0, 0, 0, 0, 0],
dtype="int64"),
array([534, 217, 88, 35, 14, 5, 2, 0, 0, 0, 0, 0],
dtype="int64"),
array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], dtype="int64"),
array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], dtype="int64"),
array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], dtype="int64")]
for i in range(len(x[0])):
result = 0
for line,_ in enumerate(x):
for row,value in enumerate(x[line]):
if line+row == i:
result+= value
print(result)
59
142
235
331
429
529
628
726
828
335
134
52
for i in range(len(x[0])):
print(sum([x[j][i-j] for j in range(i+1)]))
59
142
235
331
429
529
628
726
828
335
134
52