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

Python二维列表操作:匹配查找合并与字符串追加实现方法

Python二维列表匹配合并操作方案

原始数据定义

first_name_age = [["bob", 8], ["frank", 10]]
first_name_height = [["bob", "48 inches"], ["frank", "53 inches"]]

问题1:按人名匹配合并两个列表

因为两个列表的元素顺序不一定一致,不能直接按索引配对。最优方案是先将其中一个列表转换为以人名为键的字典,利用字典O(1)的查找效率实现低时间复杂度的匹配,整体时间复杂度为O(n+m),远优于嵌套循环的O(n*m):

# 将身高列表转为字典,存储人名到身高的映射关系
height_map = {item[0]: item[1] for item in first_name_height}
# 遍历年龄列表完成匹配合并
first_name_height_age = []
for name, age in first_name_age:
    if name in height_map:
        first_name_height_age.append([name, age, height_map[name]])

如果偏好列表推导式写法,也可以写成:

height_map = {item[0]: item[1] for item in first_name_height}
first_name_height_age = [[name, age, height_map[name]] for name, age in first_name_age if name in height_map]

代码中的if name in height_map判断用于过滤两个列表人名不匹配的脏数据,如果你能保证两个列表的人名完全一致,可以去掉该判断。

问题2:年龄字段拼接指定后缀

你可以在合并的同时直接处理年龄字段,一步得到最终结果:

height_map = {item[0]: item[1] for item in first_name_height}
final = [[name, f"{age} years old", height_map[name]] for name, age in first_name_age if name in height_map]

如果你已经生成了合并后的first_name_height_age列表,也可以单独处理年龄字段:

final = [[name, f"{age} years old", height] for name, age, height in first_name_height_age]

运行后得到的final列表完全符合要求的结构。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.08 06:27:03