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

如何将字符串列表与列表的列表合并为目标嵌套列表?

问题:合并两个同长度列表生成目标列表

给定两个长度相同的列表:

list_1 = ['2a', '3b', '2c', '2d', ... ]
list_2 = [[], [], [], ['3a'], ['3b'], ... ]

需要合并得到第三个列表,要求将两个列表对应位置的元素组合:list_1的单个元素转为列表后,与list_2对应位置的列表拼接,结果如下:

list_3 = [['2a'], ['3b'], ['2c','3a'], ['2d','3b'], ...]

尝试过的代码及错误结果

尝试过以下代码,但均未得到预期结果:

  1. 使用product函数:
from itertools import product
list_3 = list(product(list_1, list_2))

错误结果:生成了所有元素的笛卡尔积,而非对应位置组合:

list_3 = [('2a', []), ('3b',[]), ('2c',['3a']), ...]
  1. 嵌套循环与错误的列表推导式:
list_3 = []
for i in list_2:
     for j in list_2:
         list_3.append(str(i) + str(j))

list_3 =  [[str(list_1[x]) + str(x)] for x in (list_1, list_2)]

错误结果:要么生成了字符串拼接的混乱结果,要么结构不符合预期:

list_3 = [['2a', '3b', '2c', '2d'...], [],[]....]

解决方案

利用zip()函数按位置配对两个列表的元素,再通过列表推导式完成拼接:

list_3 = [[item1] + item2 for item1, item2 in zip(list_1, list_2)]

代码说明

  • zip(list_1, list_2):将两个列表中同一索引位置的元素一一配对,比如索引0对应('2a', []),索引3对应('2d', ['3b'])
  • [item1] + item2:把list_1中的单个字符串转为列表[item1],再和list_2中对应位置的列表拼接:
    • 当item2为空列表时,结果就是[item1]
    • 当item2包含元素时,自动合并为一个新列表,比如['2c'] + ['3a']得到['2c', '3a']

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 17:24:15