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

如何在Python中为列表添加与另一列表匹配值的列?

解决方案

针对你从Excel转Python的需求,这里提供两种实现方法,从易理解到高效优化:

方法1:嵌套循环(新手友好,逻辑直观)

这种方法完全贴合手动匹配的思路,遍历两个列表找对应项:

mydata = [['e', 'cat'], 
          ['a', 'dog'], 
          ['i', 'bird'], 
          ['o', 'frog']]

lst = [['a', '1'],
       ['e', '2'],
       ['i', '3'],
       ['o', '4'],
       ['u', '5']]

mydata_1 = []
for item in mydata:
    # 提取当前子列表的匹配关键字
    match_key = item[0]
    # 遍历lst找对应匹配项
    for pair in lst:
        if pair[0] == match_key:
            # 复制原列表避免修改原始数据,追加匹配值后加入结果
            new_item = item.copy()
            new_item.append(pair[1])
            mydata_1.append(new_item)
            break  # 找到匹配就停止遍历,提升效率

print(mydata_1)

注:用item.copy()是为了防止修改原始的mydata列表,如果你不需要保留原数据,也可以直接item.append(pair[1])后加入结果。

方法2:字典映射(高效推荐,适合大数据量)

因为lst里的首元素都是唯一的,我们可以先把它转换成字典,把匹配关键字作为键,对应值作为值,这样查找速度会大幅提升(从逐个遍历的O(n*m)变成O(1)的直接查找):

mydata = [['e', 'cat'], 
          ['a', 'dog'], 
          ['i', 'bird'], 
          ['o', 'frog']]

lst = [['a', '1'],
       ['e', '2'],
       ['i', '3'],
       ['o', '4'],
       ['u', '5']]

# 把lst转换成字典,方便快速查找
lookup_dict = {pair[0]: pair[1] for pair in lst}

# 用列表推导式一行生成结果
mydata_1 = [item.copy() + [lookup_dict[item[0]]] for item in mydata]

print(mydata_1)

容错优化(可选)

如果mydata里可能存在lst中没有的关键字,可以用get方法避免报错,找不到时返回默认值(比如空字符串):

mydata_1 = [item.copy() + [lookup_dict.get(item[0], '')] for item in mydata]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 12:36:18