我想打印一個矩陣的行數和列數,其中值爲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)
我想打印一個矩陣的行數和列數,其中值爲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)
Python的指數是從零開始的。你已經做了一切正確的事情,但只需要添加幾個+1
即可獲得您所期望的輸出。此外,詞典是由自然無序的,所以你會只用一個元組的列表會更好:
G = [(i+1, [j+1 for j, y in enumerate(row) if y]) for i, row in enumerate(A)]
或者更好的;只需要一個2d的列表,當你需要它們時,將索引作爲第一列。
謝謝你,先生。這個技巧。如果我想刪除所有的括號和逗號,我試圖把它保存到一個文件。 – user3258267 2014-11-01 13:50:28
@ user3258267'['{} {}'.format(a,''.join(b))for a,b in G]'給出了這種格式的字符串列表。對不起,我花了一段時間回覆,我的互聯網突然崩潰了。 – 2014-11-01 14:23:53
當我嘗試我得到一個錯誤,說「期望的str實例,int找到」。 – user3258267 2014-11-01 15:20:17
你知道Python的索引是基於零的,是嗎?那些字典是無序的? – jonrsharpe 2014-11-01 13:36:02
是的,先生,我知道。我將編輯問題 – user3258267 2014-11-01 13:37:14
您能否澄清問題所在?只是打印出字典是*永遠不會給你想要的輸出 - 你將不得不做一些格式化。 – jonrsharpe 2014-11-01 13:41:32