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

如何将简单ID列表与可变长度双元素嵌套列表组合生成三元组列表

邮件ID与收件人信息关联实现

输入输出说明

现有两个输入数据源:

  • 邮件ID列表em_id:存储每封邮件的唯一标识
  • 嵌套收件人列表rec:每个子列表对应同下标邮件的所有收件人信息,单条收件人信息包含收件类型、收件人姓名两个字段

输入示例:

em_id = ['e1', 'e2']
rec = [[['To', 'Bob'], ['To', 'Billy'], ['Cc', 'Jane']], [['Bcc', 'Bob']]]

预期输出为扁平化的三元组列表,结构为[邮件ID, 收件类型, 收件人姓名],输出示例:

em_rec = [['e1', 'To', 'Bob'], ['e1', 'To', 'Billy'], ['e1', 'Cc', 'Jane'], ['e2', 'Bcc', 'Bob']]

实现方案

基础嵌套循环版(易读性高)

通过zip配对同下标邮件ID和对应收件人列表,内层循环遍历单封邮件的所有收件人生成三元组:

em_rec = []
for emid, rec_list in zip(em_id, rec):
    for rec_type, rec_name in rec_list:
        em_rec.append([emid, rec_type, rec_name])

列表推导式版(写法简洁)

将嵌套逻辑整合为列表推导式,一行即可完成生成:

em_rec = [[emid, rec_type, rec_name] for emid, rec_list in zip(em_id, rec) for rec_type, rec_name in rec_list]

两种实现都可以自动适配每封邮件不同的收件人长度,符合无空值场景的使用要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 17:45:04