给出列表清单:
>>> n=4
>>> LoL=[range(n) for i in range(n)]
>>> LoL
[[0, 1, 2, 3], [0, 1, 2, 3], [0, 1, 2, 3], [0, 1, 2, 3]]
它是否易于理解,可以理解, Pythonic 甚至以这种方式确保N x N矩阵:
>>> len(LoL) == n and {len(l) for l in LoL} == {n}
True
因此可以使用它:
if len(matrix) != 4 or {len(l) for l in matrix} != {4}:
raise ValueError
是否有更好的替代习语或这是可以理解的?
答案 0 :(得分:0)
正如您的评论所述,尝试/除可能更好。
您不仅会抓住并尝试使用4x4尺寸以外的元素,而且还会捕获传递给您的错误尺寸:
>>> LoL=[1,2,3,4]
>>> len(LoL) == n and {len(l) for l in LoL} == {n}
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 1, in <setcomp>
TypeError: object of type 'int' has no len()
如果您对要使用的数据有疑问,请与我们联系:
>>> try:
... i=LoL[2][2]
... except IndexError:
... print 'no bueno...'
...
no bueno...