создание сетки / вложенного списка "n" по "n" - PullRequest
0 голосов
/ 13 ноября 2018

Итак, моя проблема в том, что я пытаюсь создать вложенный список, который имеет одинаковую ширину и высоту, который заполнен случайными целыми числами от 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()

Ответы [ 4 ]

0 голосов
/ 13 ноября 2018

Один простой вариант - использовать случайную целочисленную функцию numpy, поэтому

import numpy as np
def generateRandomGrid(n):
    return np.random.randint(1,101,(n,n)).tolist()
0 голосов
/ 13 ноября 2018

Если я правильно понимаю, вам нужен список, в котором ширина и высота равны.

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()

Ouput:
[[92, 92], [8, 8], [10, 10], [37, 37], [11, 11]]

0 голосов
/ 13 ноября 2018

Может быть, вы ищете:

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]]
0 голосов
/ 13 ноября 2018

список пониманий вашего друга:

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...