python二维数组如何转列表

python二维数组如何转列表

作者:Joshua Lee发布时间:2026-01-14阅读时长:0 分钟阅读次数:6

用户关注问题

Q
怎样将Python中的二维数组转换成一维列表?

我有一个Python二维数组,想要把里面的所有元素合并成一个一维列表,该怎么做?

A

使用列表推导将二维数组转成一维列表

可以使用列表推导式遍历二维数组的每个元素,将它们依次添加到一个新的列表中。例如:

array_2d = [[1, 2], [3, 4], [5, 6]]
list_1d = [item for sublist in array_2d for item in sublist]
这样,list_1d就会变成一个包含所有元素的一维列表。

Q
Python中有没有现成的函数可以直接将二维数组转换为列表?

我不想手写循环,有没有Python内置或者库函数能直接实现把二维数组转换成一维列表?

A

NumPy提供了扁平化数组的方法

如果二维数组是NumPy数组,可以使用flatten()或者ravel()方法将其转换为一维数组,随后调用tolist()转换为Python列表。例如:

import numpy as np
arr = np.array([[1, 2], [3, 4]])
list_1d = arr.flatten().tolist()
这将得到一个普通的Python列表,其中包含了二维数组的所有元素。

Q
如何处理含有不同长度子数组的二维数组转列表?

如果我的二维数组里面的每个子数组长度不一样,转换成列表会有什么注意点吗?

A

处理不规则二维数组转换为一维列表的小贴士

二维数组中的子数组长度不统一时,列表推导依然有效,只是输出的顺序会按照原数组的排列顺序依次加入。只要用同样的推导式遍历所有子列表即可,无需担心长度差异:

list_1d = [item for sublist in irregular_2d_array for item in sublist]
这样转换后的列表会包含所有元素,且顺序保持二维数组中元素的先后。