1 from itertools import groupby 2 3 bom = [dict(bomNo="BOM201704030002", parentItemNo="04.01.00001", childItemNo="02.11.00008"), 4 dict(bomNo="BOM201704030004", parentItemNo="03.08.10.00002", childItemNo="03.02.04.00002"), 5 dict(bomNo="BOM201704030002", parentItemNo="04.01.00001", childItemNo="03.08.10.00001"), 6 dict(bomNo="BOM201704030004", parentItemNo="03.08.10.00002", childItemNo="03.05.05.00001"), 7 dict(bomNo="BOM201704030002", parentItemNo="04.01.00001", childItemNo="02.04.00001"), 8 dict(bomNo="BOM201704030004", parentItemNo="03.08.10.00002", childItemNo="03.09.10.00001"),] 9 bom.sort(key= lambda x: x['bomNo']) 10 11 for k, grp in groupby(bom, key=lambda x: x["bomNo"]): 12 print("----", k, "----") 13 for item in grp: 14 print(item)
output:
1 "C:Program FilesPython35python.exe" C:/Users/jonney/Desktop/untitled/test.py 2 ---- BOM201704030002 ---- 3 {'parentItemNo': '04.01.00001', 'bomNo': 'BOM201704030002', 'childItemNo': '02.11.00008'} 4 {'parentItemNo': '04.01.00001', 'bomNo': 'BOM201704030002', 'childItemNo': '03.08.10.00001'} 5 {'parentItemNo': '04.01.00001', 'bomNo': 'BOM201704030002', 'childItemNo': '02.04.00001'} 6 ---- BOM201704030004 ---- 7 {'parentItemNo': '03.08.10.00002', 'bomNo': 'BOM201704030004', 'childItemNo': '03.02.04.00002'} 8 {'parentItemNo': '03.08.10.00002', 'bomNo': 'BOM201704030004', 'childItemNo': '03.05.05.00001'} 9 {'parentItemNo': '03.08.10.00002', 'bomNo': 'BOM201704030004', 'childItemNo': '03.09.10.00001'} 10 11 Process finished with exit code 0