Динамически добавлять элементы в многомерный список python - PullRequest
0 голосов
/ 12 апреля 2020

Я пытался добавить элементы в массив списка что-то вроде этого

a = 1
b = 2
c = 3
d = [[],[],[]]
for i in range(3):
    d[i] = [a,b,c]
print(d)

то, что я хочу d, это [[1,2,3], [1,2,3], [1,2,3]], но динамически, без необходимости указывать число [] внутри список

как это сделать динамически?

Ответы [ 3 ]

1 голос
/ 12 апреля 2020

Вы хотите что-то вроде этого .?

a = 1
b = 2
c = 3
d = []
for i in range(3):
    d.append([a,b,c])

print(d)

Вывод:

[[1, 2, 3], [1, 2, 3], [1, 2, 3]]
1 голос
/ 12 апреля 2020

Ваш ввод должен быть списком значений и сделать функцию для возврата вашей квадратной матрицы. Это не требует знания того, сколько списков должно быть сгенерировано заранее.

a = 1
b = 2
c = 3

def square_matrix(values : list) -> list:
    d = []

    for _ in range(len(values)):
        d.append([x for x in values])

    return d

sq_mat = square_matrix([a, b, c]) # [[1,2,3], [1,2,3], [1,2,3]]

Это предполагает, что вы хотите столько списков, сколько у вас есть значений. Если вы хотите, чтобы количество списков отличалось от количества значений, измените функцию на что-то вроде этого:

def nested_lists(values : list, num_of_lists : int) -> list:
    d = []
    for _ in range(num_of_lists):
        d.append([x for x in values])
    return d

my_lists = nested_lists([a,b,c], 2) # [[a,b,c], [a,b,c,]]
0 голосов
/ 12 апреля 2020

Если вы просто хотите заполнить список предопределенными значениями, вы можете сделать что-то вроде этого

d = [[a,b,c]]*3
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...