如何将一维列表合并到二维列表的指定索引位置?
不用Numpy合并二维列表的子列表
你遇到的问题是append()会把整个列表作为单个元素添加,导致嵌套结构。不用Numpy的话,有几种原生Python方法可以实现将一维列表的元素合并到二维列表的指定子列表中:
方法1:使用extend()方法
extend()会将传入的可迭代对象的每个元素逐个添加到列表末尾,正好满足需求:
numbers = [ [1,2,3], [11,12], ] numbers[0].extend([4,5,6]) numbers[1].extend([13,14,15,16]) print(numbers)
输出:
[[1, 2, 3, 4, 5, 6], [11, 12, 13, 14, 15, 16]]
方法2:使用+=运算符
列表的+=操作等价于调用extend(),写法更简洁:
numbers = [ [1,2,3], [11,12], ] numbers[0] += [4,5,6] numbers[1] += [13,14,15,16] print(numbers)
输出和上面一致。
方法3:使用切片赋值
通过切片指定位置,将目标列表的元素替换到切片位置(这里用末尾切片实现追加):
numbers = [ [1,2,3], [11,12], ] # 利用末尾切片把元素追加进去 numbers[0][len(numbers[0]):] = [4,5,6] numbers[1][len(numbers[1]):] = [13,14,15,16] print(numbers)
同样可以得到期望的输出。
内容的提问来源于stack exchange,提问作者Fabix
相关产品推荐
相关产品推荐

