Задать вопрос
@13_nastya_13

Как разделить список на количество n подсписков(на n-частей)?

Мне нужно например разделить список [1, 2 , 2, 3, 4, 3] на [1, 2], [2, 3], [4, 3]
  • Вопрос задан
  • 334 просмотра
Подписаться 1 Простой Комментировать
Решения вопроса 2
@Miit
async awaiter
Как вариант:
data = [1, 2, 2, 3, 4, 3]
offset = 0
length = len(data)

while offset + 2 <= length:
    print(data[offset:offset + 2])
    offset += 2


UPD: Краткий вариант записи
data = [1, 2, 2, 3, 4, 3]
out = list(zip(*[iter(data)] * 2))  # [(1, 2), (2, 3), (4, 3)]
Ответ написан
Комментировать
adugin
@adugin Куратор тега Python
Классику надо знать:
a = [1, 2, 2, 3, 4, 3]

n = 2
list(zip(*[iter(a)]*n))

Или через numpy:
import numpy as np

np.array(a).reshape(-1, n)
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
ScriptKiddo
@ScriptKiddo
https://pypi.org/project/more-itertools/

from more_itertools import divide

for n in range(2, 7):
    print(f'n: {n} - {[list(x) for x in divide(n=n, iterable=[1, 2, 2, 3, 4, 3])]}\n')


OUT

n: 2 - [[1, 2, 2], [3, 4, 3]]

n: 3 - [[1, 2], [2, 3], [4, 3]]

n: 4 - [[1, 2], [2, 3], [4], [3]]

n: 5 - [[1, 2], [2], [3], [4], [3]]

n: 6 - [[1], [2], [2], [3], [4], [3]]


Process finished with exit code 0
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы