Python “生成网格/嵌套列表”;";由「;";

Python “生成网格/嵌套列表”;";由「;";,python,nested-lists,Python,Nested Lists,所以我的问题是,我试图创建一个宽度和高度相等的嵌套列表,它由1到100之间的随机整数填充 我的密码是: 我的错误是int类型对于类似的输出+= 我走错方向了吗?还是我遗漏了什么 谢谢 import random def generateRandomGrid(n): randomList = [] for i in range(n) : randomList.append(random.randint(1,100)) for i in range(n):

所以我的问题是,我试图创建一个宽度和高度相等的嵌套列表,它由1到100之间的随机整数填充

我的密码是:

我的错误是int类型对于类似的输出+=

我走错方向了吗?还是我遗漏了什么

谢谢

import random

def generateRandomGrid(n):

    randomList = []
    for i in range(n) :
        randomList.append(random.randint(1,100))
    for i in range(n):
        output=random.randint(1,100)
        for j in range(n):
            output+= str(randomList[i][j]) + random.randint(1,100)
        print(output)

def main() :

    print(generateRandomGrid(5))
main()

列出理解是你的朋友:

grid = [[randint(1, 100) for _ in range(100)] for _ in range(100)]
转换为函数:

def generate_random_grid(n):
    return [[randint(1, 100) for _ in range(n)] for _ in range(n)]
更优雅:

def generate_random_grid(size, min=1, max=100):
    return [[randint(min, max) for _ in range(size)] for _ in range(size)]
注意:
如果使用Python2.7或更早版本,请将
范围更改为
xrange

列表理解是您的朋友:

grid = [[randint(1, 100) for _ in range(100)] for _ in range(100)]
转换为函数:

def generate_random_grid(n):
    return [[randint(1, 100) for _ in range(n)] for _ in range(n)]
更优雅:

def generate_random_grid(size, min=1, max=100):
    return [[randint(min, max) for _ in range(size)] for _ in range(size)]
注意:
如果使用python 2.7或更早版本,请更改
range
xrange

如果我的理解正确,您需要一个宽度和高度相等的列表

import random

def generateRandomGrid(n):
    randomList = []
    for i in range(n) :
        num = random.randint(1,100)
        randomList.append([num, num])
    return randomList


def main() :
    print(generateRandomGrid(5))

main()
输出:

[[92,92],[8,8],[10,10],[37,37],[11,11]。

如果我的理解是正确的,您需要一个宽度和高度相等的列表

import random

def generateRandomGrid(n):
    randomList = []
    for i in range(n) :
        num = random.randint(1,100)
        randomList.append([num, num])
    return randomList


def main() :
    print(generateRandomGrid(5))

main()
输出:
[[92,92],[8,8],[10,10],[37,37],[11,11]

也许你在寻找:

from random import randint
n= 4
rand_matrix = [ [ randint(0, 100) for none in range(n)] for none in range(n)]

print(rand_matrix)
#=> [[49, 29, 15, 52], [6, 34, 19, 99], [91, 29, 83, 60], [13, 32, 95, 81]]
也许你在寻找:

from random import randint
n= 4
rand_matrix = [ [ randint(0, 100) for none in range(n)] for none in range(n)]

print(rand_matrix)
#=> [[49, 29, 15, 52], [6, 34, 19, 99], [91, 29, 83, 60], [13, 32, 95, 81]]

一个简单的选择是使用numpy的随机整数函数

import numpy as np
def generateRandomGrid(n):
    return np.random.randint(1,101,(n,n)).tolist()

一个简单的选择是使用numpy的随机整数函数

import numpy as np
def generateRandomGrid(n):
    return np.random.randint(1,101,(n,n)).tolist()

这一行
output+=str(randomList[i][j])+random.randint(1100)
产生错误,因为
randomList
是一个整数列表,因为您的是添加的整数(
randomList.append(random.randint(1100))
),而不是另一个列表这一行
output+=str(randomList[i][j])+random.randint(1100)
产生错误,因为
randomList
是一个整数列表,因为您是添加的整数(
randomList.append(random.randint(1100))
)而不是另一个列表您的宽度和高度不相等。我认为问题是要有一个nxn网格。你的宽度和高度是不相等的。我认为问题是要有一个nxn网格。