Как задать векторам значения на Python через цикл

Есть следующий код:

kode = [1, 2, 3, 4, 5, 6, 7]
lkm = len(kode) % 3

if lkm == 2:
    kode.append(33)
elif lkm == 1:
    kode.append(33)
    kode.append(33)

Который ищет остаток от деления,и если есть остаток, то добавлят одну или две цифры (33), чтобы остаток от деления был 0, и была возможность разделения их на векторы.

Далее, есть несколько x

x1 = [1, 2, 3]
x2 = [4, 5, 6]
x3 = [7, 33, 33]
# ...

Как можно создать столько векторов, на основе длины kode, чтобы каждый вектор был уникален по названию переменной, и не задавать эти векторы самостоятельно на основе длины kode? Знаю что через цикл, но у самого не получилось.


Ответы (2 шт):

Автор решения: Danis
def f(arr, step):
    return [arr[i:i + step] for i in range(0, len(arr), step)]
kode = [1, 2, 3, 4, 5, 6, 7]
print(f(kode, 3))

вывод:

[[1, 2, 3], [4, 5, 6], [7]] 
→ Ссылка
Автор решения: Zhihar
import numpy

arr = [1, 2, 3, 4, 5, 6, 7]

arr += [33] * ((3 - len(arr)) % 3)
new_arr = numpy.array_split(arr, len(arr) // 3)

print(new_arr)

или можно дополнить код @Danis, чтоб вообще не использовать библиотек:

new = [arr[i:i + 3] for i in range(0, len(arr), 3)]
new[-1] += [33] * ((3 - len(new[-1])) % 3)

[[1, 2, 3], [4, 5, 6], [7, 33, 33]]

→ Ссылка