Напишите функцию 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()
принимает на вход список элементов и число, которое определяет размер подсписков. А возвращает список, состоящий из подсписков заданного размера. Последний подсписок может включать в себя дополнительно оставшиеся элементы. Это производится при помощи взятия срезов входящего списка. Тесты проверяют правильность работы функции для различных входных данных.