这样的事情怎么样?
# Create a zero matrix of w x h
w, h = 10, 10
matrix = [[0] * w for i in range(h)]
# List of your numbers
numbers = range(1,46)
# Fill your numbers in
# go one row at a time and fill until you reach the diagonal
for i in range(10):
for j in range(0, i):
matrix[i][j] = matrix[j][i] = numbers.pop(0)
# Print all rows
for row in matrix:
print row
你得到的输出是:
[0, 1, 2, 4, 7, 11, 16, 22, 29, 37]
[1, 0, 3, 5, 8, 12, 17, 23, 30, 38]
[2, 3, 0, 6, 9, 13, 18, 24, 31, 39]
[4, 5, 6, 0, 10, 14, 19, 25, 32, 40]
[7, 8, 9, 10, 0, 15, 20, 26, 33, 41]
[11, 12, 13, 14, 15, 0, 21, 27, 34, 42]
[16, 17, 18, 19, 20, 21, 0, 28, 35, 43]
[22, 23, 24, 25, 26, 27, 28, 0, 36, 44]
[29, 30, 31, 32, 33, 34, 35, 36, 0, 45]
[37, 38, 39, 40, 41, 42, 43, 44, 45, 0]