本文共 591 字,大约阅读时间需要 1 分钟。
python3 下,利用 reduce
函数实现。
对于如下对象列表:
[ { 'name':'black','foo':123}, { 'name':'black','foo':456}, { 'name':'white','foo':789},]
期望得到:
[ { 'name':'black','foo':123}, # 或保留 {'name':'black','foo':456},这不重要 { 'name':'white','foo':789},]
当时思索了一通,实现压缩到最简,如下:
a = [ { 'name':'black','foo':123}, { 'name':'black','foo':456}, { 'name':'white','foo':789}]result = reduce(lambda y,x:y if (x['name'] in [i['name'] for i in y]) else (lambda z,u:(z.append(u),z))(y,x)[1],a,[])
reduce
函数在 functools
模块中:
from functools import reduce
转载地址:http://zqbws.baihongyu.com/