#python #python-3.x
#python #python-3.x
Вопрос:
Я совершенно новичок в Python; однако я хотел бы составить список из 6 вложенных списков, каждый из которых содержит 4 случайных значения между 0
и 30
.
Ответ должен быть напечатан следующим образом:
lst[0] = [1,4,4,5]
lst[1] = [23,14,5,8]
...
lst[5] = [8,9,18,27]
Комментарии:
1. Не называйте свою собственную переменную
list
— она затеняет встроенную. Что вы пробовали до сих пор и что получилось? Вы заглядывали вrandom
модуль ?2. Я понимаю, как использовать random, однако я просто не могу понять, как создать список внутри списка, кстати, большое вам спасибо за ответ 🙂
3. Вы можете добавить список в список, как и все остальное:
lst.append([1, 2])
Ответ №1:
Вот простая однострочная строка, которая поможет это сделать:
from random import randint
rand_list = [[randint(0, 30) for i in range(4)] for n in range(6)]
>>>rand_list
[[28, 17, 5, 9],
[27, 29, 3, 8],
[18, 13, 4, 11],
[15, 12, 11, 19],
[17, 8, 22, 30],
[24, 6, 9, 1]]
Если вы хотите пофантазировать, вы можете легко превратить его в функцию, которая позволит вам указывать размеры списка в качестве входных данных для функции:
def rand_lists(num_lists, num_vals):
return [[randint(0, 30) for i in range(num_vals)] for n in range(num_lists)]
>>> rand_lists(2, 7)
[[17, 8, 29, 2, 9, 26, 16],
[24, 22, 5, 10, 11, 0, 10]]
Ответ №2:
Для однострочного:
from random import randint
lst = [[randint(0, 30) for col in range(4)] for row in range(6)]
Что эквивалентно (в чистом python):
lst = []
for row in range(6):
r = []
lst.append(r)
for col in range(4):
r.append(randint(0, 30))