Files
30-seconds-of-code/snippets/group_by.md
Isabelle Viktoria Maciohsek dd8ed02d7e Update group_by expertise tag
2020-02-10 20:52:06 +02:00

543 B

title, tags
title tags
group_by list,object,intermediate

Groups the elements of a list based on the given function.

Use map() and fn to map the values of the list to the keys of an object. Use list comprehension to map each element to the appropriate key.

def group_by(lst, fn):
  return {key : [el for el in lst if fn(el) == key] for key in map(fn, lst)}
from math import floor
group_by([6.1, 4.2, 6.3], floor) # {4: [4.2], 6: [6.1, 6.3]}
group_by(['one', 'two', 'three'], len) # {3: ['one', 'two'], 5: ['three']}