Напишите функцию split_into_sublists(), которая принимает на вход список элементов и число chunk_size, и возвращает список из подсписков, каждый размером chunk_size. Если в конце остается менее chunk_size элементов, они также должны быть включены в последний подсписок.
Напишите также тесты с использованием pytest, чтобы проверить правильность работы функции на разных входных данных.
Пишите ваши варианты в комментариях.
Подпишитесь на наш ТЕЛЕГРАМ КАНАЛ ПО АВТОМАТИЗАЦИИ ТЕСТИРОВАНИЯ
# split_into_sublists.py
def split_into_sublists(input_list, chunk_size):
return [input_list[i:i+chunk_size] for i in range(0, len(input_list), chunk_size)]
# test_split_into_sublists.py
import pytest
from split_into_sublists import split_into_sublists
def test_regular_list():
assert split_into_sublists([1, 2, 3, 4, 5, 6, 7], 3) == [[1, 2, 3], [4, 5, 6], [7]]
assert split_into_sublists(["a", "b", "c", "d", "e", "f"], 2) == [["a", "b"], ["c", "d"], ["e", "f"]]
def test_empty_list():
assert split_into_sublists([], 3) == []
def test_chunk_size_greater_than_list_length():
assert split_into_sublists([1, 2, 3], 5) == [[1, 2, 3]]
def test_chunk_size_equal_to_list_length():
assert split_into_sublists(["apple", "banana", "cherry"], 3) == [["apple", "banana", "cherry"]]
def test_mixed_elements():
assert split_into_sublists([1, "a", 2, "b", 3, "c"], 2) == [[1, "a"], [2, "b"], [3, "c"]]
В данной задаче функция split_into_sublists() принимает на вход список элементов и число, которое определяет размер подсписков. А возвращает список, состоящий из подсписков заданного размера. Последний подсписок может включать в себя дополнительно оставшиеся элементы. Это производится при помощи взятия срезов входящего списка. Тесты проверяют правильность работы функции для различных входных данных.