Source code for gbvision.tools.list_tools

from typing import Callable, Iterable, T


[docs]def split_list(f: Callable[[T], int], lst: Iterable[T], amount=2): """ splits the list into several list according to the function f :param lst: the list to split :param f: a function which maps from an argument to the index of the list it should go to for example if we wanted a function to split a list into a list of positive and negative number f could look like lambda x: int(x >= 0) :param amount: the amount of lists to split the data to (2 by default) :return: a tuple of all the lists created, """ temp = tuple([] for _ in range(amount)) for i in lst: temp[f(i)].append(i) return temp