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

如何从元组列表a和键列表b生成保留原值列表结构的新字典

实现方案

实现逻辑

  • 先从列表b中提取字典的键,取每个元组的首位元素,键的顺序与b的索引一一对应,正好匹配a中元组首位的分组编号
  • 按分组编号对a的元素做聚合,分别收集每个分组下所有元组的第二位、第三位元素
  • 将每个分组收集到的两类元素转为元组,放入列表作为对应键的值,拼接得到最终字典

可运行代码

from numpy import nan
from collections import defaultdict

# 输入原始数据
a = [(0, ['Potato'], [8]),
     (0, ['Tomato'], [2]),
     (0, ['Tomato'], [2]),
     (0, ['Potato'], [6]),
     (0, ['Potato'], [12]),
     (0, ['Potato'], [12]),
     (0, nan, nan),
     (1, [], []),
     (1, [], [])]

b = [('foo', 123), ('bar', 456)]

# 提取目标字典的键集合
dict_keys = [item[0] for item in b]

# 按分组索引分别聚合两类字段
col1_group = defaultdict(list)
col2_group = defaultdict(list)
for group_idx, col1_val, col2_val in a:
    col1_group[group_idx].append(col1_val)
    col2_group[group_idx].append(col2_val)

# 构造最终字典
newDict = {}
for group_idx, key in enumerate(dict_keys):
    newDict[key] = [tuple(col1_group[group_idx]), tuple(col2_group[group_idx])]

print(newDict)

运行上述代码即可得到你要求的输出结构。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 00:57:05