Python根据指定ID列表过滤数组对象的最简实现方法
实现方法
最简写法用Python原生列表推导式即可完成,优先推荐把待排除ID转成集合优化查询性能:
obj = [ { 'uniqueID' : "B111222", "Fees" : 111}, { 'uniqueID' : "B222111", "Fees" : 222}, { 'uniqueID' : "B333111", "Fees" : 333} ] unwanted = [ "B111222", "B222111"] # 核心过滤逻辑 unwanted_ids = set(unwanted) res = [item for item in obj if item["uniqueID"] not in unwanted_ids]
运行后res的值就是期望输出:
[{'uniqueID': 'B333111', 'Fees': 333}]
补充说明
- 如果处理的数据量极小,不想额外写转集合的代码,直接判断
item["uniqueID"] not in unwanted也能得到正确结果,只是列表的成员判断时间复杂度更高,数据量大时性能差距明显。 - 该写法没有引入任何第三方依赖,是Python原生支持的最简洁、可读性最高的实现方式。
内容的提问来源于stack exchange,提问作者peekaboo
相关产品推荐
相关产品推荐

