2016-01-22 33 views
-1

我有看起来像代码:如何以迭代方式将矩阵添加到自身?

X = [[12,7,3], 
    [4 ,5,6], 
    [7 ,8,9]] 


result = [[0,0,0], 
     [0,0,0], 
     [0,0,0]] 

Final = [[0,0,0], 
     [0,0,0], 
     [0,0,0]] 



for i in range(len(X)): 
    for j in range(len(X)): 
     for x in range(4): 
        result[i][j] = X[i][j] + X[i][j] 
        Final[i][j]=result[i][j]+X[i][j] 


for r in Final: 
    print(r) 

我想与自身添加X矩阵为4次,并返回答案最终总结矩阵。任何人都可以帮助我吗?

+3

你需要编写一些代码。编写最糟糕,最可怕的代码。你有权限。然后改进它。 –

回答

1

一种方法是使用zip()函数生成列表对,然后遍历那些对打印邮件:

l = [5, 6, 7, 8] 
for source, dest in zip(l, l[1:]): 
    print('Source = {}'.format(source)) 
    print('Destination = {}'.format(dest)) 

输出:

 
Source = 5 
Destination = 6 
Source = 6 
Destination = 7 
Source = 7 
Destination = 8 

这里的关键是zip()函数,它的工作原理是每一个项目,其列表中的继任者结合:

>>> l = [1, 2, 3, 4, 5, 6] 
>>> l[1:] 
[2, 3, 4, 5, 6] 
>>> zip(l, l[1:]) 
[(1, 2), (2, 3), (3, 4), (4, 5), (5, 6)] 

如果列表中甚至不长,最后一个项目将被丢弃:

>>> l = [1, 2, 3] 
>>> zip(l, l[1:]) 
[(1, 2), (2, 3)] 
+0

非常感谢。这正是我所期待的。 :) @mhawke –

+0

@UjjalShaha:没问题。我不明白为什么你的问题被关闭了 - 这对我来说似乎很特殊,但你无论如何都得到了答案:) – mhawke

+0

嘿,我需要一些帮助。似乎Stack Overflow不会让我再问任何问题。 :/有什么方法可以联系你吗? –

1
yourlist = [5,6,7,8] 
for i in range(len(yourlist)-1): 
    print "Source: " + str(yourlist[i]) 
    print "Destination: " + str(yourlist[i+1]) + "\n" 

输出:

Source = 5 
Destination = 6 

Source = 6 
Destination = 7 

Source = 7 
Destination = 8