[{'doc_id':'123', 'key': '1'},{'doc_id': '123', 'key':'2'}, {'doc_id': 'abc', 'key': '3'},{'doc_id': '123', 'key':'4'}, {'doc_id': 'abc', 'key':'5'}] 请实现一个需求,列表中doc_id为123的保留2个,doc_id为abc的保留一个,使用python代码实现
可以使用 Python 的列表推导式和字典来实现这个需求。以下是一个示例代码,展示了如何从给定的列表中筛选出符合条件的元素:
data = [
{'doc_id': '123', 'key': '1'},
{'doc_id': '123', 'key': '2'},
{'doc_id': 'abc', 'key': '3'},
{'doc_id': '123', 'key': '4'},
{'doc_id': 'abc', 'key': '5'}
]
# 用于存储结果
result = []
# 记录每个 doc_id 的数量
count = {'123': 0, 'abc': 0}
# 遍历原始数据
for item in data:
doc_id = item['doc_id']
# 根据 doc_id 进行条件判断
if doc_id == '123' and count['123'] < 2:
result.append(item)
count['123'] += 1
elif doc_id == 'abc' and count['abc'] < 1:
result.append(item)
count['abc'] += 1
print(result)
result
用于存储最终结果。count
来记录每个 doc_id
的数量。data
,根据 doc_id
的值进行条件判断:
doc_id
是 '123'
,并且已经保留的数量少于 2,则将该项添加到结果列表中,并更新计数。doc_id
是 'abc'
,并且已经保留的数量少于 1,则将该项添加到结果列表中,并更新计数。运行上述代码后,result
将包含以下内容:
[{'doc_id': '123', 'key': '1'}, {'doc_id': '123', 'key': '2'}, {'doc_id': 'abc', 'key': '3'}]
这样就实现了保留 doc_id
为 123
的 2 个元素和 doc_id
为 abc
的 1 个元素的