如何附加3d列表并打印其内容?

时间:2016-05-17 23:45:19

标签: python list 3d append

我想创建一个包含N个列表的列表,每个列表都将填充将按以下方式计算的值:

for i in range(R): for j in range(R): b.append(a[i]-a[j])

i和j与步骤2之间的所有差异

我有这段代码:

b = []
for i in range(N):
    b.append([])
    for j in range(R):
        b[i].append([])
        for k in range(R,2):
            b[i][j].append(a[j]-a[k])
print b

给出了:

[[[], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], []], [[], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], []]]

1 个答案:

答案 0 :(得分:0)

我不确定N,R和a是什么,但我认为问题在范围内(R,2)。它应该是范围(0,R,2)。现在你的最后一个for循环没有做任何事情。我也不确定那里有什么'做'。

N = 5
R = 4

b = []
for i in range(N):
    b.append([])
    for j in range(R):
        b[i].append([])
        for k in range(0,R,2):
            b[i][j].append(j - k)
print b

上面的代码返回以下内容:

[[[0, -2], [1, -1], [2, 0], [3, 1]], [[0, -2], [1, -1], [2, 0], [3, 1]], [[0, -2], [1, -1], [2, 0], [3, 1]], [[0, -2], [1, -1], [2, 0], [3, 1]], [[0, -2], [1, -1], [2, 0], [3, 1]]]

这是R个R / 2值列表的N个列表。这就是你要追求的吗?