我需要取0-8的数字并使用函数在3x3阵列中随机重新排列它们。什么是最简单的方法? 我需要将[0,1,2,3,4,5,6,7,8]作为一个3x3数组,其中的数字是随机顺序
答案 0 :(得分:0)
一个想法是使用带有已排序数字的平面列表/数组,将它们混合(例如使用random.shuffle
),然后将其重新整形为。 Python本身不支持数组,因此您可以使用列表,然后将它们重新整理为列表列表,如:
import random
def arrange(x, rows, cols):
random.shuffle(x)
return [x[cols * i : cols * (i + 1)] for i in range(rows)]
print(arrange(list(range(9)), 3, 3))
numpy有array object你也可以使用,它支持重塑等,请参阅文档,如:
import numpy as np
### Numpy's array solution
def arrange_np(x, rows, cols):
np.random.shuffle(x)
return x.reshape(rows, cols)
print(arrange_np(np.arange(9), 3, 3))