8000 Add collectby built-in · Issue #620 · evhub/coconut · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content
Add collectby built-in #620
Closed
Closed
@evhub

Description

@evhub

Approximate implementation:

def collectby(key_func, iterable, value_func=None, reduce_func=None):
    collection = defaultdict(list) if reduce_func is None else {}
    for item in iterable:
        key = key_func(item)
        if value_func is not None:
            item = value_func(item)
        if reduce_func is None:
            collection[key].append(item)
        else:
            old_item = collection.get(key, sentinel)
            if old_item is not sentinel:
                item = reduce_func(old_item, item)
            collection[key] = item
    return collection

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

      0