首页 > 代码库 > python groupby

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

 

python groupby