字典列表中同limit_price条目合并及pending_quantity累加需求
字典列表去重与数量合并处理
需求说明
处理由字典组成的列表,完成两项操作:
- 移除键值对完全重复的字典
- 将
limit_price相同的字典的pending_quantity累加合并
输入示例
[ { "limit_price": 20.0, "pending_quantity": 2.0 }, { "limit_price": 80.0, "pending_quantity": 2.0 }, { "limit_price": 80.0, "pending_quantity": 2 } ]
期望输出
[ { "limit_price": 20.0, "pending_quantity": 2.0 }, { "limit_price": 80.0, "pending_quantity": 4.0 } ]
Python实现方案
通过临时字典分组累加,同时统一数量的数值类型,避免整数与浮点数差异导致的分组错误:
def merge_orders(order_list): price_quantity_map = {} for order in order_list: # 提取限价和待成交数量,统一转为浮点数 limit_price = order["limit_price"] pending_qty = float(order["pending_quantity"]) # 累加同限价的数量 if limit_price in price_quantity_map: price_quantity_map[limit_price] += pending_qty else: price_quantity_map[limit_price] = pending_qty # 将映射转换回要求的列表格式 return [{"limit_price": price, "pending_quantity": qty} for price, qty in price_quantity_map.items()] # 测试代码 input_orders = [ { "limit_price": 20.0, "pending_quantity": 2.0 }, { "limit_price": 80.0, "pending_quantity": 2.0 }, { "limit_price": 80.0, "pending_quantity": 2 } ] result = merge_orders(input_orders) print(result)
说明
这段代码会自动处理重复字典(重复字典的限价和数量一致,累加后数值翻倍),同时统一数量类型,确保整数、浮点数格式的同限价条目能正确合并,运行后即可得到符合要求的结果。
内容的提问来源于stack exchange,提问作者Muthumani18
相关产品推荐
相关产品推荐

