Python如何按位置合并两个单元素子列表构成的等长二维列表?
两种适配新手的实现思路
两个输入列表长度一致,核心操作就是把同位置的两个单元素子列表拼起来,不需要额外拆元素。
方法1:基础循环写法(最容易读懂,适合刚学语法的阶段)
- 直接用Python自带的
zip函数做位置配对,不用手动写索引定位,不容易出错 - 每拿到一对同位置的子列表,直接用列表加法把两个单元素子列表拼成长度为2的新子列表,存进最终结果
代码示例:
# 你的示例输入结构 list1 = [['a'], ['b'], ['c']] list2 = [['e'], ['f'], ['g']] merged_result = [] for sub1, sub2 in zip(list1, list2): # 两个列表直接用+拼接,刚好得到["a", "e"]这类目标格式 merged_result.append(sub1 + sub2)
运行后merged_result的结果就是[['a','e'], ['b','f'], ['c','g']],完全匹配要求的结构。
方法2:列表推导式简化写法(对循环逻辑熟悉后可以用)
逻辑和上面的基础循环完全一致,只是把整个循环压缩成更简洁的单行写法,日常写代码更省时间:
merged_result = [sub1 + sub2 for sub1, sub2 in zip(list1, list2)]
小提示
因为已经确认两个列表的子列表总数相等,用zip完全不用担心配对不全的问题;如果之后碰到两个列表长度不一样的情况,zip会自动按更短的列表截断配对,不需要额外写长度校验代码。
内容的提问来源于stack exchange,提问作者Daniel
相关产品推荐
相关产品推荐

