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

不导入库:将多组二维列表转换为键对应值列表的字典

解决方法

你的原始代码思路不对,filter函数是用来筛选可迭代对象中符合条件的元素,没法完成键值对的收集工作。要实现需求,可以按以下方式处理:

基础实现方式

# 假设输入的二维列表如下(匹配你期望的输出)
x = [['A', 1], ['B', 2], ['C', 3]]
y = [['A', 100], ['B', 200], ['C', 300]]
z = [['A', 1000], ['B', 2000], ['C', 3000]]

result = {}
# 遍历所有输入的二维列表
for lst in [x, y, z]:
    # 逐个处理每个子列表
    for key, value in lst:
        # 键不存在时初始化空列表
        if key not in result:
            result[key] = []
        # 将对应值添加到列表中
        result[key].append(value)

print(result)
# 输出: {'A': [1, 100, 1000], 'B': [2, 200, 2000], 'C': [3, 300, 3000]}

简化写法(用setdefault省掉判断逻辑)

可以利用字典的setdefault方法,一步完成“键不存在则初始化,存在则直接追加值”的操作:

result = {}
for lst in [x, y, z]:
    for key, value in lst:
        result.setdefault(key, []).append(value)

这段代码和上面的实现效果完全一致,代码更简洁。

内容的提问来源于stack exchange,提问作者hani128

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 07:25:33