Как создать матрицу в питоне повторяющегося числа? - PullRequest
0 голосов
/ 11 декабря 2018

Я хочу:
Создать список векторов от 0 до 4, то есть [0, 1, 2, 3, 4] и из этого
Создать матрицу, содержащую «многоуровневый список» от 0 до 4, 3 раза, один раз для каждого измерения.Матрица имеет 4 ^ 3 = 64 строки, поэтому, например,

T = [0 0 0    
       0 0 1  
       0 0 2  
       0 0 3  
       0 0 4  
       0 1 0  
       0 1 1  
       0 1 2  
       0 1 3  
       0 1 4  
       0 2 0  
       ...  
       1 0 0  
       ...  
       1 1 0  
       ....  
       4 4 4]    

Это то, что у меня есть:

n=5;
ind=list(range(0,n))
print(ind)

Я только начинаю работать с Python, поэтому любая помощь будетс благодарностью!

Ответы [ 3 ]

0 голосов
/ 11 декабря 2018

Модуль python itertools product() Функция может сделать это:

for code in itertools.product( range(5), repeat=3 ):
    print(code)

Дать результат:

(0, 0, 0)
(0, 0, 1)
(0, 0, 2)
(0, 0, 3)
...
(4, 4, 2)
(4, 4, 3)
(4, 4, 4)

Итак, чтобы превратить это в матрицу:

import itertools
matrix = []
for code in itertools.product( range(5), repeat=3 ):
     matrix.append( list(code) )
0 голосов
/ 11 декабря 2018

Обратите внимание, вы действительно хотите, чтобы матрица имела 5 ^ 3 = 125 строк.Основной ответ заключается в том, чтобы просто выполнить итерацию во вложенных циклах:

T = []
for a in range(5):
    for b in range(5):
        for c in range(5):
            T.append([a, b, c])

Существуют и другие, возможно, более быстрые способы сделать это, но для быстрого достижения скорости трудно справиться с этим.

0 голосов
/ 11 декабря 2018
 list_ = []
 for a in range(5):
     for b in range(5):
        for c in range(5):
              list_ += [a ,b ,c ]

 print(list_)
...