在企业后台开发中,难免遇见从多个系统取数、合并的需求。

传统的方案就是多层for循环嵌套。随着数据量的增大和数据源的增多执行效率会越来越低,维护成本也会越来越高。
所以不妨尝试下内存换效率的方案:
实例如下:
a = [dict(id=10, name='lisi'), dict(id=11, name='zhangsan'), dict(id=12, name='wangwu')] b = [dict(id=10, age=20), dict(id=11, age=15), dict(id=12, age=16)] # 现在需要把其做合并操作得到字典 {id, name, age} # 把列表a转字典 aDict = {} for _it in a: aDict[_it.get('id')] = _it # 把列表b转字典 bDict = {} for _it in b: aDict[_it.get('id')] = _it result = [] # 做联结运算 for _key in set(aDict.keys()) & set(bDict.keys()): result.append(dict(id=_key, name=aDict.get(_key, {}).get('name')), age=bDict.get(_key, {}.get('age')) )
在一定程度上可以简洁代码,加强扩展性。


还没有评论,来说两句吧...