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

Python中如何合并键相同、值为数组类型的两个嵌套字典

字典合并解决方案

首先修正你给出的d1的语法错误(原书写中键2对应的列表末尾游离了一个numpy数组,已将其归入键2的列表中),再按要求实现穿插合并逻辑,完整代码如下:

import numpy as np
from numpy import array, int64

# 修正语法后的原始字典
d1 = {
    0: [array([ 42.9017, -78.6631]), array([ 41.5372, -74.0526]), array([ 39.8017, -89.6437])], 
    1: [array([ 34.7269, -86.5673]), array([ 29.7229, -98.0742])],
    2: [array([  35.9878, -115.1167]), array([  34.0316, -117.6187]), array([  61.6303, -148.9872])]
}

d2 = {
    0: [array([5, 5], dtype=int64), array([44, 44], dtype=int64), array([1, 1], dtype=int64)], 
    1: [array([1, 1], dtype=int64), array([12, 12], dtype=int64), array([1, 1], dtype=int64)],
    2: [array([1, 1], dtype=int64), array([12, 12], dtype=int64), array([1, 1], dtype=int64)]
}

# 核心合并逻辑
d3 = {}
for key in d1:
    l1, l2 = d1[key], d2[key]
    merged = []
    # 逐位置穿插元素
    for item1, item2 in zip(l1, l2):
        merged.append(item1)
        merged.append(item2)
    # 追加长度不一致时的剩余元素
    merged.extend(l1[len(l2):])
    merged.extend(l2[len(l1):])
    d3[key] = merged

执行后得到的d3完全符合你要求的穿插规则:同一个键下,d1对应位置数组和d2对应位置数组依次排列,剩余元素自动追加到列表末尾。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.15 16:15:00