IndexError:在coo_matrix中,元组索引超出范围

时间:2016-02-22 20:37:49

标签: python matrix sparse-matrix

我试图将coo_matrix的输出存储到字典中,格式为" store [0,0] = 1"使用

J = coo_matrix(Mat)
store = {}
for row, col, value in zip(J.row, J.col, J.data):
    store["{0}".format(row),"{1}".format(col)] = "{2}".format(value)

这有什么错误?

1 个答案:

答案 0 :(得分:0)

虽然我不知道coo_matrix可能是什么或做什么,但问题在于你的字符串格式。

如果您确定要将字符串元组作为字典键,那么您可以

store["{}".format(row),"{}".format(col)] = "{}".format(value)

"{0}...{1}...{2}"之类的东西可以处理多个参数,例如

>>> '{0}, {1}, {2}'.format('a', 'b', 'c')
'a, b, c'
>>> '{}, {}, {}'.format('a', 'b', 'c')  # 2.7+ only
'a, b, c'
>>> '{2}, {1}, {0}'.format('a', 'b', 'c')
'c, b, a'
>>> '{2}, {1}, {0}'.format(*'abc')      # unpacking argument sequence
'c, b, a'
>>> '{0}{1}{0}'.format('abra', 'cad')   # arguments' indices can be repeated
'abracadabra'

(直接取自https://docs.python.org/2/library/string.html#format-examples

但你为什么不这样做store[(row, col)] = value