import random
def list_2d_generate(rows, columns, low_range, high_range):
float_list = []
matrix1 = [[0]*columns for i in range(rows)]
for i in range(rows):
for j in range(columns):
floats = random.uniform(low_range, high_range)
matrix1.insert(j, floats)
return matrix1
我应该创建一个大小由用户确定的矩阵,并且对于该矩阵中的每个元素,使用random.uniform生成随机浮点数。上面是我的代码,但它将所有数字放在矩阵之外(将它们添加到列表而不是列表中)。
答案 0 :(得分:2)
试试这个:
import random
def makematrix(x,y,minnum, maxnum):
matrix = []
for row in range(x):
matrix.append([])
for col in range(y):
matrix[row].append(random.uniform(minnum,maxnum))
return matrix
print(makematrix(4,4,0,100))
示例输出:
[[44.75502455476652, 28.664480955351777, 32.656439723011175, 3.9675096554774303] [61.990473239473566, 55.16751027710425, 62.20529230301345, 53.641004392485584], [1.4753516149572543, 8.391386895268615, 61.87234529817771, 11.364854440314732], [21.122758368045947, 62.155653114217145, 85.20532313391281, 97.60326478339135]]
答案 1 :(得分:1)
列表插入会添加值而不是替换现有值。
不是生成矩阵然后填充矩阵,而是使用以下值生成矩阵:
import random
def list_2d_generate(rows, columns, low_range, high_range):
return [
[random.uniform(low_range, high_range)
for _ in xrange(columns)]
for _ in xrange(rows)]