Group

Splits a list into smaller groups (chunks) of a specified size.

python · Community Common Scripts

Details

IDGroup
Languagepython
From Version6.10.0
Docker Imagedemisto/python3:3.12.13.7444307
TagsUtilities

README

Splits a list into group.

e.g. [1,2,3,4] -> [“1,2”, “3,4”].

Script Data


Name Description
Script Type python3
Tags Utilities

Inputs


Argument Name Description
input An input list.
chunk Size of each group.
type Group as list or string.
delimiter Separate elements using delimiter (If type is String).

Outputs


Path Description
Group The list after grouping.
from CommonServerPython import argToList
from Group import group


def test_group_list():
    input = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
    data = argToList(input)
    chunk = 5
    structure = "List"
    delimiter = None
    outputs = group(data, chunk, structure, delimiter)
    assert outputs == [[1, 2, 3, 4, 5], [6, 7, 8, 9, 10]]


def test_group_string():
    input = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
    data = argToList(input)
    chunk = 5
    structure = "String"
    delimiter = None
    outputs = group(data, chunk, structure, delimiter)
    assert outputs == ["1,2,3,4,5", "6,7,8,9,10"]


def test_group_list_unequal():
    input = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
    data = argToList(input)
    chunk = 7
    structure = "List"
    delimiter = None
    outputs = group(data, chunk, structure, delimiter)
    assert outputs == [[1, 2, 3, 4, 5, 6, 7], [8, 9, 10]]


def test_group_string_unequal():
    input = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
    data = argToList(input)
    chunk = 7
    structure = "String"
    delimiter = None
    outputs = group(data, chunk, structure, delimiter)
    assert outputs == ["1,2,3,4,5,6,7", "8,9,10"]


def test_group_string_unequal_delimiter():
    input = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
    data = argToList(input)
    chunk = 3
    structure = "String"
    delimiter = "-"
    outputs = group(data, chunk, structure, delimiter)
    assert outputs == ["1-2-3", "4-5-6", "7-8-9", "10"]


def test_group_list_additional():
    input = ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10"]
    data = argToList(input)
    chunk = 3
    structure = "List"
    delimiter = ","
    outputs = group(data, chunk, structure, delimiter)
    assert outputs == [["1", "2", "3"], ["4", "5", "6"], ["7", "8", "9"], ["10"]]


def test_group_string_additional():
    input = ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10"]
    data = argToList(input)
    chunk = 3
    structure = "String"
    delimiter = ","
    outputs = group(data, chunk, structure, delimiter)
    assert outputs == ["1,2,3", "4,5,6", "7,8,9", "10"]