【Python】多维列表变为一维列表的方法--numpy

转载:(18条消息) 【Python】多维列表变为一维列表的方法_四维列表变一维_Vincent__Lai的博客-CSDN博客

题目

给定一个多维列表,怎么让其变为一维?
例如,输入:[[1, 4], [2], [3, 5, 6]],输出:[1, 4, 2, 3, 5, 6]

常规一行做法
a = [[1, 4], [2], [3, 5, 6]]

a = [j for i in a for j in i]
print(a)
调用库不用循环一行做法
import itertools
a = [[1, 4], [2], [3, 5, 6]]

a = list(itertools.chain.from_iterable(a))
print(a)
自己写迭代器做法
a = [[1, 4], [2], [3, 5, 6]]

a = iter(a)
b = []
while 1:
    try:
        b += a.__next__()
    except StopIteration:
        break
print(b)

(备注:理论上法三中用了迭代器,会比法一节约空间,但是因为另外开辟了一个变量b,所以可能也没有相差很多,具体需要个分析内存空间的工具,之后再补)

调用numpy
import numpy as np
a = [[1, 4], [3, 2], [5, 6]]
a = np.array(a).flatten().tolist()
print(a)

但是用numpy的前提是list中每一行的元素个数要一样

 

posted @ 2023-07-06 20:13  burlingame  阅读(98)  评论(0编辑  收藏  举报