2016-09-16 28 views
0

我有一個字典,它的鍵作爲元組和值分配給這些鍵。在字典中處理行和列

我想執行一組基於鍵位置的操作。

這是我寫到目前爲止的代碼。

詞典:

p={(0, 1): 2, (1, 2): 6, (0, 0): 1, (2, 0): 7, (1, 0): 4, (2, 2): 9, (1, 1): 5, (2, 1): 8, (0, 2): 3} 

所需的輸出是:

欲個別的行的值如下所示。

q=[[1,2,3], [4,5,6], [7,8,9]] 

我寫了這個代碼,可以做到這一點伎倆列:

r=[[p[(x,y)] for x in range(3)] for y in range(3)] 

爲其輸出如下所示:

​​

我知道如何與下面這樣做一套代碼:

z=[] 
for i in range(3): 
    z.append([p[i,j] for j in range(3)]) 

哪給了我:

z=[[1, 2, 3], [4, 5, 6], [7, 8, 9]] 

我的問題是,我可以在一個列表中理解嗎?

在此先感謝。

回答

1

如果您在代碼r中翻轉xy,它似乎會以您想要的方式輸出。例如,

r=[[p[(x,y)] for y in range(3)] for x in range(3)] 

導致

[[1,2,3],[4,5,6],[7,8,9]]

+1

感謝您的回答。我明白了。我寫了這麼多的代碼,迷失了它。我寫了它,但不知道我寫的地方。謝謝! –

1

我試圖在代碼中做幾件事情。我寫了它,但沒有意識到這一點,並繼續嘗試與代碼的不同組合。

下面是答案:

z=[[p[(i,j)] for j in range(3)] for i in range(3)] 

謝謝!