2014-11-01 45 views
0

我想打印一個矩陣的行數和列數,其中值爲1 例如:打印矩陣蟒蛇的行數和列數

A=[0 1 0] 
    [1 0 1] 
    [1 0 0] 

我所要的輸出顯示爲:(行號,然後相應的列)

0 1 
1 0 2 
2 0 

我試圖用枚舉(),但它給了我不同類型的輸出。

G={i: [j for j, y in enumerate(row) if y] for i, row in enumerate(A)} 
print (G) 
+2

你知道Python的索引是基於零的,是嗎?那些字典是無序的? – jonrsharpe 2014-11-01 13:36:02

+0

是的,先生,我知道。我將編輯問題 – user3258267 2014-11-01 13:37:14

+0

您能否澄清問題所在?只是打印出字典是*永遠不會給你想要的輸出 - 你將不得不做一些格式化。 – jonrsharpe 2014-11-01 13:41:32

回答

0

Python的指數是從零開始的。你已經做了一切正確的事情,但只需要添加幾個+1即可獲得您所期望的輸出。此外,詞典是由自然無序的,所以你會只用一個元組的列表會更好:

G = [(i+1, [j+1 for j, y in enumerate(row) if y]) for i, row in enumerate(A)] 

或者更好的;只需要一個2d的列表,當你需要它們時,將索引作爲第一列。

+0

謝謝你,先生。這個技巧。如果我想刪除所有的括號和逗號,我試圖把它保存到一個文件。 – user3258267 2014-11-01 13:50:28

+0

@ user3258267'['{} {}'.format(a,''.join(b))for a,b in G]'給出了這種格式的字符串列表。對不起,我花了一段時間回覆,我的互聯網突然崩潰了。 – 2014-11-01 14:23:53

+0

當我嘗試我得到一個錯誤,說「期望的str實例,int找到」。 – user3258267 2014-11-01 15:20:17