您应该使用列表理解:
>>> import pprint>>> n = 3>>> distance = [[[0 for k in xrange(n)] for j in xrange(n)] for i in xrange(n)]>>> pprint.pprint(distance)[[[0, 0, 0], [0, 0, 0], [0, 0, 0]], [[0, 0, 0], [0, 0, 0], [0, 0, 0]], [[0, 0, 0], [0, 0, 0], [0, 0, 0]]]>>> distance[0][1][0, 0, 0]>>> distance[0][1][2]0
您本可以使用一个看起来像您尝试过的语句来生成数据结构,但是由于内部列表是按引用复制的,因此它会产生副作用:
>>> distance=[[[0]*n]*n]*n>>> pprint.pprint(distance)[[[0, 0, 0], [0, 0, 0], [0, 0, 0]], [[0, 0, 0], [0, 0, 0], [0, 0, 0]], [[0, 0, 0], [0, 0, 0], [0, 0, 0]]]>>> distance[0][0][0] = 1>>> pprint.pprint(distance)[[[1, 0, 0], [1, 0, 0], [1, 0, 0]], [[1, 0, 0], [1, 0, 0], [1, 0, 0]], [[1, 0, 0], [1, 0, 0], [1, 0, 0]]]



