Как задать векторам значения на 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]]