Skip to content

capturegraph.data.containers.utilities.concat #

concat - Concatenate Multiple Lists#

Concatenate multiple Lists into a single List.

Example
from capturegraph.data import concat, List

left = List([1, 2, 3])
right = List([4, 5, 6])
combined = concat(left, right)
# → List([1, 2, 3, 4, 5, 6])

# Works with any number of lists
all_photos = concat(
    sessions.left_surrounding.sequence,
    sessions.right_surrounding.sequence,
    sessions.primary,
)

concat(*lists) #

Concatenate multiple Lists into a single List.

Parameters:

Name Type Description Default
*lists List[T]

Any number of Lists to concatenate.

()

Returns:

Type Description
List[T]

A single List containing all elements from all input Lists.

Raises:

Type Description
ValueError

If no arguments are provided.

Example
a = List([1, 2])
b = List([3, 4])
c = List([5])
concat(a, b, c)  # List([1, 2, 3, 4, 5])

# Concatenating image sequences from multiple sources
all_images = concat(
    sessions.left.sequence,
    sessions.right.sequence,
)
Source code in capturegraph-lib/capturegraph/data/containers/utilities/concat.py
def concat[T](*lists: List[T]) -> List[T]:
    """Concatenate multiple Lists into a single List.

    Args:
        *lists: Any number of Lists to concatenate.

    Returns:
        A single List containing all elements from all input Lists.

    Raises:
        ValueError: If no arguments are provided.

    Example:
        ```python
        a = List([1, 2])
        b = List([3, 4])
        c = List([5])
        concat(a, b, c)  # List([1, 2, 3, 4, 5])

        # Concatenating image sequences from multiple sources
        all_images = concat(
            sessions.left.sequence,
            sessions.right.sequence,
        )
        ```
    """
    if len(lists) == 0:
        raise ValueError("concat requires at least one argument")

    result = []
    for lst in lists:
        if isinstance(lst, list):
            result.extend(lst)
        else:
            result.append(lst)

    return List(result)