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

如何基于First Name与Last Name合并多组嵌套字典列表

基于姓名合并多组字典列表的实现方案

问题描述

需合并四组嵌套字典列表,以Customer Details中的First Name和Last Name为匹配依据,生成包含Kieran Wilson所有信息的字典列表。各组数据如下:

  • Customer Details:
[{'First Name': 'Kieran', 'Last Name': 'Wilson', 'Age (Years)': '89', 'Marital Status': 'married or civil partner', 'Distance Commuted to Work (miles)': '0', 'Employer Company': 'N/A', 'Dependants': '3', 'Yearly Pension (GBP)': '7257', 'Sex': 'Male', 'Retired': 'TRUE', 'Yearly Salary (GBP)': '72838'}]
  • Address:
[{'Address Street': '70 Lydia isle', 'Address City': 'Lake Conor', 'Address Postcode': 'S71 7XZ'}, {'Address Street': '00 Wheeler wells', 'Address City': 'Chapmanton', 'Address Postcode': 'L2 7BT'}]
  • Credit Card info:
[{'Credit Card Start Date': '18-Aug', 'Credit Card Expiry Date': '27-Nov', 'Credit Card CVV': '875', 'Credit Card Number': '6.76374E+11', 'Bank IBAN': 'GB62PQKB71416034141571'}]
  • Vehicle:
[{'Vehicle Make': 'Hyundai', 'Vehicle Model': 'Bonneville', 'Vehicle Type': 'Pickup', 'Vehicle Year': '2009'}]

实现步骤与代码

核心思路

  1. 从Customer Details中精准筛选出Kieran Wilson的字典数据
  2. 针对不同类型的附属数据:
    • 单条数据直接合并键值对到用户字典
    • 多条数据(如地址)以列表形式存入用户字典,避免键冲突

代码实现

# 定义原始数据
customer_details = [{'First Name': 'Kieran', 'Last Name': 'Wilson', 'Age (Years)': '89', 'Marital Status': 'married or civil partner', 'Distance Commuted to Work (miles)': '0', 'Employer Company': 'N/A', 'Dependants': '3', 'Yearly Pension (GBP)': '7257', 'Sex': 'Male', 'Retired': 'TRUE', 'Yearly Salary (GBP)': '72838'}]
address_list = [{'Address Street': '70 Lydia isle', 'Address City': 'Lake Conor', 'Address Postcode': 'S71 7XZ'}, {'Address Street': '00 Wheeler wells', 'Address City': 'Chapmanton', 'Address Postcode': 'L2 7BT'}]
credit_card_info = [{'Credit Card Start Date': '18-Aug', 'Credit Card Expiry Date': '27-Nov', 'Credit Card CVV': '875', 'Credit Card Number': '6.76374E+11', 'Bank IBAN': 'GB62PQKB71416034141571'}]
vehicle_list = [{'Vehicle Make': 'Hyundai', 'Vehicle Model': 'Bonneville', 'Vehicle Type': 'Pickup', 'Vehicle Year': '2009'}]

# 筛选目标用户
target_customer = next((c for c in customer_details if c['First Name'] == 'Kieran' and c['Last Name'] == 'Wilson'), None)

if target_customer:
    # 合并单条数据:信用卡、车辆
    if credit_card_info:
        target_customer.update(credit_card_info[0])
    if vehicle_list:
        target_customer.update(vehicle_list[0])
    
    # 合并多条地址数据,以列表形式存储
    target_customer['Addresses'] = address_list
    
    # 生成最终结果列表
    result = [target_customer]
    print(result)
else:
    print("未找到Kieran Wilson的信息")

代码说明

  • 使用next()函数高效筛选目标用户,无需遍历整个列表
  • update()方法直接合并字典键值对,适合单条附属数据
  • 地址数据以Addresses为键存入列表,保留所有地址信息
  • 若后续需要地址与用户的精准关联,可添加用户ID等关联字段扩展逻辑

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 16:22:46