a = []
def make_squares(arr, length, nums):
if not nums:
print(arr)
a.append(arr)
return
r = 0
while r < len(arr) and len(arr[r]) == length:
r += 1
for i in nums:
nums.remove(i)
arr[r].append(i)
make_squares(arr, length, nums)
nums.append(i)
arr[r] = arr[r][:-1]
make_squares([[] for i in range(3)], 3, [i+1 for i in range(3**2)])
print(a)
我正在尝试使用上面的代码创建nxn矩阵,每个矩阵都有一个 numbers 的排列i+1...n^2。我已经打印了每个附加到 a 的矩阵,它们看起来是正确的,但是当我最后打印 a 时,我得到了[[[], [], []], [[], [], []], ...]。这对我来说没有任何意义。
预期的结果是
[[[1, 2, 3], [4, 5, 6], [7, 8, 9]], [[1, 2, 3], [4, 5, 6], [7, 9, 8]], ...]
紫衣仙女
相关分类