• 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 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
  • 相关阅读:
    paraview添加vector
    origin横纵坐标颠倒
    [转] python提取计算结果的最大最小值及其坐标
    康奈尔大学CFD课程
    anaconda多环境配置
    mfix的Negative gas density报错解决
    python基础补漏-01
    ssh 公钥登陆的问题
    多进程
    关于GIL
  • 原文地址:https://www.cnblogs.com/jonney-wang/p/7040534.html
Copyright © 2020-2023  润新知