如何向嵌套列表(list of lists)的每隔第n个位置插入指定元素?
当然可以实现这个需求!下面给你两种实用的Python实现方式,完美适配你的嵌套列表结构:
解决方案
方法1:直观的循环实现
这种方式可读性极强,适合刚接触Python的朋友理解逻辑:
original_list = [[45.0, 58.0, 45.0, 520.0], [45.0, 58.0, 754.0, 58.0], [302.0, 58.0, 302.0, 520.0], [563.0, 58.0, 563.0, 520.0], [626.0, 58.0, 626.0, 257.0], [754.0, 58.0, 754.0, 321.0], [563.0, 159.0, 754.0, 159.0], [626.0, 257.0, 754.0, 257.0], [45.0, 260.0, 110.0, 260.0], [302.0, 260.0, 563.0, 260.0], [629.0, 321.0, 629.0, 520.0], [45.0, 520.0, 629.0, 520.0], [110.0, 58.0, 110.0, 322.0], [45.0, 129.0, 110.0, 129.0], [45.0, 322.0, 302.0, 322.0], [563.0, 321.0, 754.0, 321.0], [299.0, 520.0, 299.0, 581.0], [299.0, 581.0, 562.0, 581.0], [562.0, 520.0, 562.0, 581.0], [563.0, 450.0, 629.0, 450.0]] processed_list = [] for sublist in original_list: new_sublist = [] # 每两个元素为一组遍历子列表 for i in range(0, len(sublist), 2): # 添加当前组的两个元素,再插入元素2 new_sublist.extend([sublist[i], sublist[i+1], 2]) processed_list.append(new_sublist)
方法2:简洁的列表推导式
如果喜欢更紧凑的代码风格,用嵌套列表推导式可以一行搞定:
original_list = [[45.0, 58.0, 45.0, 520.0], [45.0, 58.0, 754.0, 58.0], ...] # 代入你的完整列表 processed_list = [ [item for pair in zip(sublist[::2], sublist[1::2]) for item in pair + (2,)] for sublist in original_list ]
处理后的结果示例
处理后的列表前几个元素完全匹配你给出的示例:
[ [45.0, 58.0, 2, 45.0, 520.0, 2], [45.0, 58.0, 2, 754.0, 58.0, 2], [302.0, 58.0, 2, 302.0, 520.0, 2], [563.0, 58.0, 2, 563.0, 520.0, 2], ... # 剩余元素均按相同规则处理 ]
内容的提问来源于stack exchange,提问作者user13541811
相关产品推荐
相关产品推荐

