hwt/pyUtils/arrayQuery.py
def groupedby(collection, fn):
    """
    same like itertools.groupby

    :note: This function does not needs initial sorting like itertools.groupby

    :attention: Order of pairs is not deterministic.
    """
    d = {}
    for item in collection:
        k = fn(item)
        try:
            arr = d[k]
        except KeyError:
            arr = []
            d[k] = arr
        arr.append(item)

    yield from d.items()
def groupedby(collection, fn):
    d = {}
    for item in collection:
        k = fn(item)
        try:
            arr = d[k]
        except KeyError:
            arr = []
            d[k] = arr
        arr.append(item)

    yield from d.items()
def groupedby ( collection , fn ) : d = { } for item in collection : k = fn ( item ) try : arr = d [ k ] except KeyError : arr = [ ] d [ k ] = arr arr . append ( item ) yield from d . items ( )
same like itertools.groupby

    :note: This function does not needs initial sorting like itertools.groupby

    :attention: Order of pairs is not deterministic.
same like itertools . groupby