Suppose I have an array of objects.
arr = [
        {'grade': 'A', 'name': 'James'},
        {'grade': 'B', 'name': 'Tom'},
        {'grade': 'A', 'name': 'Zelda'}
      ]
I want this result
{
   'A': [
            {'grade': 'A', 'name': 'James'},
            {'grade': 'A', 'name': 'Zelda'}
        ],
   'B': [ {'grade': 'B', 'name': 'Tom'} ]
}
Use a dict and setdefault:
setdefault(key[, default])
If key is in the dictionary, return its value. If not, insert key with a value of default and return default. default defaults to None.
arr2 = {}
for d in arr:
    t = arr2.setdefault(d['grade'], [])
    t.append(d)
>>> arr2
{'A': [{'grade': 'A', 'name': 'James'}, {'grade': 'A', 'name': 'Zelda'}],
 'B': [{'grade': 'B', 'name': 'Tom'}]}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With