2
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 生成一个随机浮点数。以上是我的代码,但它将所有生成的数字放在矩阵之外(将它们添加到列表中而不是列表中)。

4

2 回答 2

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]]
于 2013-11-12T22:53:34.323 回答
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)]
于 2013-11-12T22:51:05.253 回答