如何合并Python嵌套列表与普通列表,实现对应子列表追加元素?
列表合并需求与实现
需求说明
现有如下嵌套列表与普通列表:
l1 = [['3', '3', '1', '1', '1', '1', '1'],['1', '1', '4', '5', '6', '7', '8']] l2 = m = ['8', '9']
需要将l2中的元素分别追加到l1的每个嵌套子列表中,最终得到结果:
l3 = [['3', '3', '1', '1', '1', '1', '1', '8'],['1', '1', '4', '5', '6', '7', '8', '9']]
实现方案
方法1:列表推导式(推荐)
通过遍历l1的子列表,同时匹配l2对应索引的元素,将两者拼接生成新列表:
l1 = [['3', '3', '1', '1', '1', '1', '1'],['1', '1', '4', '5', '6', '7', '8']] l2 = ['8', '9'] l3 = [sub_list + [l2[idx]] for idx, sub_list in enumerate(l1)] print(l3)
执行后直接输出目标结果,且不会修改原l1。
方法2:循环追加(原地修改)
如果需要直接修改原列表l1,可以用循环逐个追加元素:
l1 = [['3', '3', '1', '1', '1', '1', '1'],['1', '1', '4', '5', '6', '7', '8']] l2 = ['8', '9'] for idx in range(len(l1)): l1[idx].append(l2[idx]) # 若需保留原l1,可先复制子列表生成l3 l3 = [sub.copy() for sub in l1] print(l3)
内容的提问来源于stack exchange,提问作者Erfan Sharifi
相关产品推荐
相关产品推荐

