以下是一个示例代码,演示了如何按批次号显示数量及数量细分:
from collections import defaultdict
# 假设有一个商品清单,每个商品包含批次号和数量信息
inventory = [
{"批次号": "A001", "数量": 10},
{"批次号": "A002", "数量": 5},
{"批次号": "A001", "数量": 3},
{"批次号": "A003", "数量": 8},
{"批次号": "A002", "数量": 2},
]
# 创建一个字典来存储每个批次号的数量及数量细分
batch_quantities = defaultdict(lambda: {"总数量": 0})
# 遍历清单中的每个商品
for item in inventory:
batch = item["批次号"]
quantity = item["数量"]
# 如果批次号在字典中不存在,则初始化数量细分为一个空字典
if batch not in batch_quantities:
batch_quantities[batch]["数量细分"] = defaultdict(int)
# 更新批次号的总数量和数量细分
batch_quantities[batch]["总数量"] += quantity
batch_quantities[batch]["数量细分"][quantity] += 1
# 打印每个批次号的数量及数量细分
for batch, quantities in batch_quantities.items():
print(f"批次号: {batch}")
print(f"总数量: {quantities['总数量']}")
print("数量细分:")
for quantity, count in quantities["数量细分"].items():
print(f"数量: {quantity}, 数量细分: {count}")
print()
运行上述代码,将输出每个批次号的总数量以及数量细分。例如,在上述示例中,输出结果如下:
批次号: A001
总数量: 13
数量细分:
数量: 10, 数量细分: 1
数量: 3, 数量细分: 1
批次号: A002
总数量: 7
数量细分:
数量: 5, 数量细分: 1
数量: 2, 数量细分: 1
批次号: A003
总数量: 8
数量细分:
数量: 8, 数量细分: 1
这个示例代码使用defaultdict
来创建一个字典,其中每个批次号作为键,对应的值为另一个字典,包含总数量和数量细分。每个批次号的数量细分也是一个字典,其中键为具体的数量,值为该数量出现的次数。
通过遍历商品清单,更新字典中的值,最后打印出每个批次号的数量及数量细分。