Вы можете использовать список понимание вместе с петлей для заполнения в вашем списке.
>>> max_len=max(l)
>>> new = [[0 for _ in range(max_len)] for _ in range(max_len)]
>>> for i,v in enumerate(l):
... new[i][v-1] = v
...
>>> new
[[0, 0, 0, 0, 5], [0, 2, 0, 0, 0], [1, 0, 0, 0, 0], [0, 0, 0, 4, 0], [0, 0, 3, 0, 0]]
Или вы можете использовать numpy.zeros
в списке понимание в одной строке:
>>> import numpy as np
>>> l=[5,2,1,4,3]
>>> max_len=max(l)
>>> [[elem if elem-1==i else v for i,v in enumerate(arr)] for elem,arr in zip(l,[np.zeros(max_len) for _ in range(max_len)])]
[[0.0, 0.0, 0.0, 0.0, 5], [0.0, 2, 0.0, 0.0, 0.0], [1, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 4, 0.0], [0.0, 0.0, 3, 0.0, 0.0]]
Что вы пробовали? (Приоритеты, которые вы собираетесь получить, связаны с отсутствием усилий, которые вы поставили перед ответом на свой собственный вопрос) см .: http://meta.stackoverflow.com/questions/260648/stack-overflow-question-checklist –