code: def group_list_by(items, key_from_item):
      
      groups = defaultdict(list)
      for item in items:
          key = key_from_item(item)
          groups[key].append(item)
      return groups
docs: Items in the list are grouped into a dictionary
  
      key_from_item is a method to get the key from the item
  
      >>> items = [(1,9), (2,8), (1,7)]
      >>> key_from_item = lambda x: 'a' if x[0] == 1 else 'b'
      >>> grouped = group_list_by(items, key_from_item)
      >>> grouped['a'] == [(1, 9), (1, 7)]
      True