Python 矩阵作为字典;安全吗?

Python 矩阵作为字典;安全吗?,python,dictionary,matrix,key-value-store,Python,Dictionary,Matrix,Key Value Store,我知道键的顺序没有保证,这没关系,但值的顺序也没有保证,这到底意味着什么 例如,我将矩阵表示为字典,如下所示: signatures_dict = {} M = 3 for i in range(1, M): row = [] for j in range(1, 5): row.append(j) signatures_dict[i] = row print signatures_dict 矩阵中的列是否构造正确?假设我有3行,在这一行,signatur

我知道键的顺序没有保证,这没关系,但值的顺序也没有保证,这到底意味着什么

例如,我将矩阵表示为字典,如下所示:

signatures_dict = {}
M = 3
for i in range(1, M):
    row = []
    for j in range(1, 5):
        row.append(j)
    signatures_dict[i] = row
print signatures_dict
矩阵中的列是否构造正确?假设我有3行,在这一行,
signatures\u dict[I]=row
行中,
row
将始终有1,2,3,4,5。签名将是什么

1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
或者类似的

1 2 3 4 5
1 4 3 2 5
5 1 3 4 2
??我担心跨平台支持

在我的应用程序中,行是单词,列是文档,所以我可以说第一列是第一个文档吗


*您将保证每行有
1 2 3 4 5
。它不会对它们重新排序。
values()
缺乏顺序是指如果调用
signatures\u dict.values()
则值可以以任何顺序出现。但是值是行,而不是每行的元素。每一行都是一个列表,列表保持其顺序


如果您想要一个维护顺序的dict,Python也有:

为什么不使用列表列表作为矩阵?它会有你给它的任何命令

In [1]: matrix = [[i for i in range(4)] for _ in range(4)]

In [2]: matrix
Out[2]: [[0, 1, 2, 3], [0, 1, 2, 3], [0, 1, 2, 3], [0, 1, 2, 3]]

In [3]: matrix[0][0]
Out[3]: 0

In [4]: matrix[3][2]
Out[4]: 2

约翰:谢谢你的投票。在我的应用程序中,行是单词,列是文档,所以我可以说第一列是第一个文档吗?哦,伟大的约翰,所以键的顺序将与值的顺序相同。我的意思是,
signatures\u dict.keys()[0]
将获取第一个键(以先存储的键为准),同样地,
signatures\u dict.values()[0]
将获取第一个键的相应值。罗纳德,我想我应该提到,我值得你投反对票。因为有人告诉我:虽然你删除了一些代码,但你还是应该得到一张赞成票这取决于在应用程序中什么更重要。如果总是以相同的顺序对数据进行迭代的能力很重要,我建议使用列表列表。如果第一个索引不是数字,那么你最好用字典。顺便说一句,这里没有Ronald:-)@gsamaras:但是除了列表索引提供的内容之外,您的键不包含任何有意义的内容。如果您有一个稀疏矩阵(其中省略了行),那么字典可能有意义,因为这样可以更节省空间。