python groupby

 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 Files\Python35\python.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

 

posted on 2017-06-17 16:18  jonney_wang  阅读(256)  评论(0编辑  收藏  举报

导航