我想打印一个矩阵的行数和列数,其中值为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