Grouping dan Sort Python Dictionary Data

Pernah kesulitan ketika grouping atau mengurutkan list data dictionary di python? Apa yang biasanya anda lakukan? apakah anda melakukan looping terhadap keselurusah data dictionary kemudian membandingkan datanya satu persatu? Jika ya, maka mulai sekarang anda tidak perlu melakukannya lagi. Karna ada library python yang bisa melakukan itu semua. Berikut ini saya akan memberikan contoh syntax untuk grouping dan sorting dictionary data di python.

Mengurutkan Data:

import operator

data = [{'product': 'A', 'qty': 10}, {'product': 'C', 'qty': 9}, {'product': 'B', 'qty': 11}, {'product': 'C', 'qty': 15}]

result = sorted(data, key=operator.itemgetter('product'))
print('\n result', result)
# result [{'product': 'A', 'qty': 10}, {'product': 'B', 'qty': 11}, {'product': 'C', 'qty': 9}, {'product': 'C', 'qty': 15}]

result = sorted(data, key=operator.itemgetter('qty'))
print('\n result', result)
# result [{'product': 'C', 'qty': 9}, {'product': 'A', 'qty': 10}, {'product': 'B', 'qty': 11}, {'product': 'C', 'qty': 15}]

Grouping Data:

import operator
import itertools

data = [{'product': 'A', 'qty': 10}, {'product': 'C', 'qty': 9}, {'product': 'B', 'qty': 11}, {'product': 'C', 'qty': 15}]

new_lst = sorted(data, key=operator.itemgetter('product'))
groups = itertools.groupby(new_lst, key=operator.itemgetter('product'))
result = [{'product': k, 'values': [x for x in v]} for k, v in groups]
print('\n result', result)
# result [{'product': 'A', 'values': [{'product': 'A', 'qty': 10}]}, {'product': 'B', 'values': [{'product': 'B', 'qty': 11}]}, {'product': 'C', 'values': [{'product': 'C', 'qty': 9}, {'product': 'C', 'qty': 15}]}]