Тестирование производительности различных методов, предложенных здесь, и при условии, что требуемый конечный результат - это список списков (а не numpy
массив), самый быстрый, с 2,091 секундами до единицы = 10k:
major_list = [[0] * i + [1] + [0] * (unit - i - 1) for i in range(unit)]
Метод numpy становится:
major_list = numpy.identity(unit).astype(int).tolist()
И второй по скорости с 2.359 se c.
My Метод:
major_list = [[1 if i == index else 0 for i in range(unit)]
for index in range(unit)]
Отстает с 6,960 SE c.
И последний:
major_list = [[int(c==r) for c in range(unit)] for r in range(unit)]
С 17,732 SE c