You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中合并两个物品计数列表并补零的实现需求

合并两个物品计数列表的解决方案

我来帮你搞定这个合并物品计数列表的需求~下面是具体的实现思路和代码:

核心思路

  1. 先把两个列表转换成字典,这样可以快速通过物品名称查找对应的计数,比每次遍历列表效率高很多;
  2. 确定所有需要处理的物品:先保留listA里的物品顺序,再添加listB中独有的物品(这样输出顺序就和你期望的一致);
  3. 遍历每个物品,分别从两个字典中提取计数,若物品不存在于某个字典中,就用'0'填充;
  4. 把每个物品的名称和两个计数整理成子列表,最终组合成目标输出。

代码实现

listA = [['a','1'],['e','5'],['i','3'],['o','7'],['u','3']]
listB = [['a','6'],['b','3'],['c','4'],['d','1'],['e','2']]

# 转换为字典,实现快速查找
dictA = {item[0]: item[1] for item in listA}
dictB = {item[0]: item[1] for item in listB}

# 确定物品顺序:先listA的所有物品,再添加listB中不在A里的物品
all_items = [item[0] for item in listA] + [item[0] for item in listB if item[0] not in dictA]

# 生成目标输出列表
output = []
for item in all_items:
    count_from_A = dictA.get(item, '0')
    count_from_B = dictB.get(item, '0')
    output.append([item, count_from_A, count_from_B])

print(output)

运行结果

执行这段代码后,会输出你期望的结果:

[['a', '1', '6'], ['e', '5', '2'], ['i', '3', '0'], ['o', '7', '0'], ['u', '3', '0'], ['b', '0', '3'], ['c', '0', '4'], ['d', '0', '1']]

如果不需要严格遵循示例的顺序,也可以用set来获取所有唯一物品(all_items = set(dictA.keys()).union(dictB.keys())),只是输出顺序会有所不同,但内容是正确的。

内容的提问来源于stack exchange,提问作者Haseeb Hassan Asif

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 08:46:50