在python中为一组类似的语句创建一个循环

时间:2016-12-05 22:09:41

标签: python loops

我有一个名为A0

的二维矩阵
A0 = [[0 for x in range(3)] for y in range(3)]

我有一个名为newProb的函数,它将此作为参数并以下列方式返回另一个2D矩阵: -

A1 = newProb(A0)

所以,我想把这段代码放到循环中。

A1 = newProb(A0)
A2 = newProb(A1)
A3 = newProb(A2)
A4 = newProb(A3)

任何帮助将不胜感激。谢谢!

P.S。我必须以上述方式对该函数进行100次调用

6 个答案:

答案 0 :(得分:1)

不要试图在循环中创建局部变量,而是最好将结果存储在列表中。您的列表索引将与您的命名约定完美排列。

A = []

A.append([[0 for x in range(3)] for y in range(3)])

A[1] = newProb(A[0])
A[2] = newProb(A[1])
# ...

然后,您可以使用range轻松将其置于循环中。

# start the range off by 1
for i in range(1, 10):
    A[i] = newProb(A[i - 1])

这也可以写成

for i in range(10):
    A.append(newProb(A[i]))

答案 1 :(得分:0)

使用dict

A = {}
A[0] = [[0 for x in range(3)] for y in range(3)]
for i in range(1, 101):
    A[i] = newProb(A[i-1]) 

答案 2 :(得分:0)

您可以将值存储在如下所示的列表中:

A = [A0]
for i in range(99):
    A.append(newProb(A[i]))

答案 3 :(得分:0)

结合@jez和@Soviut的答案:

A = []
A.append([[0 for x in range(3)] for y in range(3)])

for i in range(100):
    A.append(newProb(A[-1])

A[-1]是列表中的最后一个元素。

答案 4 :(得分:0)

如果您只是需要' final'值,在第100个循环之后:

value = [[0 for x in range(3)] for y in range(3)]
for i in range(100):
    value = newProb(value)

答案 5 :(得分:0)

使用while循环完成答案

A = [A0]
while len(A) < 100:
    A.append(newProb(A[-1]))