<style>.lazy{display:none}</style>Задачка: Разделение на подсписки

Задачка: Разделение на подсписки

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

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *