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

Haskell按首个元素合并两个元组列表的实现方法

按元组首元素合并两个元组列表的实现方法

方法一:基于字典的通用合并(适用于key顺序不一致或存在缺失的场景)

先将两个列表转换为以元组首元素为键的字典,再遍历键值对完成合并,这种方式能处理两个列表key顺序不同的情况,也能方便扩展处理key缺失的场景。

代码示例:

list1 = [("key-1", "Type1", "Type2", "Type3"), ("key-2", "Type1", "Type2", "Type3")]
list2 = [("key-1", "Type4"), ("key-2", "Type4")]

# 转换为字典,键是元组首元素,值是剩余元素组成的元组
dict_list1 = {item[0]: item[1:] for item in list1}
dict_list2 = {item[0]: item[1:] for item in list2}

# 遍历键合并元组
merged_result = []
for key in dict_list1:
    # 拼接键与两个字典对应的元素元组
    combined_tuple = (key,) + dict_list1[key] + dict_list2[key]
    merged_result.append(combined_tuple)

print(merged_result)

方法二:顺序匹配合并(适用于两个列表key顺序完全一致且无缺失的场景)

如果能保证两个列表的元组按相同key顺序排列,直接用zip配对对应位置的元组,再拼接即可,代码更简洁。

代码示例:

list1 = [("key-1", "Type1", "Type2", "Type3"), ("key-2", "Type1", "Type2", "Type3")]
list2 = [("key-1", "Type4"), ("key-2", "Type4")]

# 配对两个列表的元组,拼接时跳过第二个元组的重复key
merged_result = [t1 + t2[1:] for t1, t2 in zip(list1, list2)]

print(merged_result)

两种方法最终输出结果均为:

[("key-1", "Type1", "Type2", "Type3", "Type4"), ("key-2", "Type1", "Type2", "Type3", "Type4")]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 11:48:34