如何为嵌套列表新增列:将b的第三列追加到同维度列表a末尾
解决方案
首先确保两个列表的行数完全一致,按行配对后取b每行索引为2的元素追加到对应行即可,两种常用实现方式如下:
方式1:列表推导式(推荐,不修改原列表)
直接生成新的结果列表,不会改动原有的a、b列表:
a = [['3', 'LP', 132.5], ['9', 'AP', -153.7], ['18', 'DN', 11.7]] b = [['3', 'AP', -103.3], ['9', 'CL', 131.8], ['18', 'DN', -55.0]] result = [a_row + [b_row[2]] for a_row, b_row in zip(a, b)]
执行后result就是你需要的目标结构。
方式2:循环逐行追加
如果需要直接修改原a列表,可以用这个写法:
for a_row, b_row in zip(a, b): a_row.append(b_row[2])
如果不想改动原a列表,就先复制a的内容再操作:
result = [row.copy() for row in a] for res_row, b_row in zip(result, b): res_row.append(b_row[2])
常见错误说明
之前使用append未得到正确结果,基本是因为没有逐行配对a、b的元素,错误地把b的元素直接追加到了a列表的整体末尾,而不是对应行的子列表末尾。
内容的提问来源于stack exchange,提问作者DaniV
相关产品推荐
相关产品推荐

