Форум сайта python.su
Как можно разбить список
a = [1,2,3,4,5,6,7,8,9,10]
[[1, 2, 3], [4, 5, 6], [7, 8, 9], [10]]
Офлайн
Для начала хватит. Дальше можешь оптимизировать, если оно потребуется вообще.
>>> def split_list(lst, n): ... out = [] ... tmp = [] ... for i in lst: ... tmp.append(i) ... if len(tmp) == n: ... out.append(tmp) ... tmp = [] ... if tmp: ... out.append(tmp) ... return out ... >>> split_list([1, 2, 3, 4, 5, 6], 1) [[1], [2], [3], [4], [5], [6]] >>> split_list([1, 2, 3, 4, 5, 6], 2) [[1, 2], [3, 4], [5, 6]] >>> split_list([1, 2, 3, 4, 5, 6], 3) [[1, 2, 3], [4, 5, 6]] >>> split_list([1, 2, 3, 4, 5, 6], 4) [[1, 2, 3, 4], [5, 6]] >>> split_list([1, 2, 3, 4, 5, 6], 5) [[1, 2, 3, 4, 5], [6]] >>> split_list([1, 2, 3, 4, 5, 6], 6) [[1, 2, 3, 4, 5, 6]] >>> split_list([1, 2, 3, 4, 5, 6], 7) [[1, 2, 3, 4, 5, 6]] >>>
Отредактировано py.user.next (Янв. 26, 2021 00:37:35)
Офлайн
А зачем нужен второй if?
Офлайн
sepomdБез него в этом примере 5 и 6 пропадут
А зачем нужен второй if?
>>> split_list([1, 2, 3, 4, 5, 6], 4) [[1, 2, 3, 4], [5, 6]] >>>
>>> def split_list(lst, n): ... out = [] ... tmp = [] ... for i in lst: ... tmp.append(i) ... if len(tmp) == n: ... out.append(tmp) ... tmp = [] ... # if tmp: ... # out.append(tmp) ... return out ... >>> split_list([1, 2, 3, 4, 5, 6], 4) [[1, 2, 3, 4]] >>>
Офлайн