在正确位置附加值

在正确位置附加值

对于以下声明的列表:

a =[[array([0, 1, 2, 3, 4])], [array([0, 1, 2]), array([3, 4])], [array([0, 1]), array([2, 3]), array([4])]]
t= [[[]], [[], []], [[], [], []]]


我写了如下代码。 (很容易看出,“ t”的尺寸与“ a”的尺寸相同,直至二阶)

 import numpy as np
 for i in range(3):
    for j in range(len(a[i])):
       for k in range(len(a[i][j])-1):
           p = k*(a[i][j][k+1]-a[i][j][k])
           print(p)
       t[i][j].append(p)
       print(t)


这与'p'的输出效果很好,如下所示:

0
1
2
3
0
1
0
0
0


但是,t的输出值是意外的。
我实际上期待的是以下形式的“ t”,其中“ p”的值将进入其对应的子列表。

t=[[[0,1,2,3]],[[0,1],[0]],[[0],[0],[0]]]


我不了解我代码中的缺陷。

获得“ t”的预期结果的可能方法是什么?
请帮忙。
谢谢。

最佳答案

t[i][j].append(p)缩进不好?尽管很难理解要实现的目标,但是下面的结果看起来与您的期望非常相似。

for i in range(3):
   for j in range(len(a[i])):
      for k in range(len(a[i][j])-1):
          p = k*(a[i][j][k+1]-a[i][j][k])
          #print(p)
          t[i][j].append(p)
print(t)

印刷品:
[[[0, 1, 2, 3]], [[0, 1], [0]], [[0], [0], []]]

关于python - 在正确位置附加值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50133982/

10-11 19:38