在python中将矩阵转换为数组

在python中将矩阵转换为数组,python,Python,我有一个python数组。在python中将其转换为数组的最佳方法是什么? 例如: m = [[1,2],[3,4]] # convert to [1,2,3,4] 我是python新手,所以我不知道有什么比编写循环更好的解决方案。请帮助。使用itertools.chain或列表理解: from itertools import chain list(chain(*m)) # shortest # or: list(chain.from_iterable(m)) # more effici

我有一个python数组。在python中将其转换为数组的最佳方法是什么? 例如:

m = [[1,2],[3,4]]
# convert to [1,2,3,4]

我是python新手,所以我不知道有什么比编写循环更好的解决方案。请帮助。

使用
itertools.chain
列表理解

from itertools import chain

list(chain(*m))  # shortest
# or:
list(chain.from_iterable(m)) # more efficient  

对于较小的列表,
理解
更快,对于较长的列表,
链。from_iterable
更合适

[item for subl in m for item in subl]
为了理解嵌套理解,可以将其拆分为多行,并将其与常规For循环进行比较:

[item                         #result = []
    for subl in m             #for subl in m:  
        for item in subl]     #    for item in subl:
                              #        result.append(item)

使用
itertools.chain
列表理解

from itertools import chain

list(chain(*m))  # shortest
# or:
list(chain.from_iterable(m)) # more efficient  

对于较小的列表,
理解
更快,对于较长的列表,
链。from_iterable
更合适

[item for subl in m for item in subl]
为了理解嵌套理解,可以将其拆分为多行,并将其与常规For循环进行比较:

[item                         #result = []
    for subl in m             #for subl in m:  
        for item in subl]     #    for item in subl:
                              #        result.append(item)

这称为展平嵌套列表。这些关键字应该对您的研究有所帮助。您应该做的第一件事是了解python术语。这将使您更容易查找代码示例并提出问题。python中没有数组(除非您使用第三方模块,如numpy),而是有列表。@StoryTeller:实际上python中没有内置数组。但是,可以通过标准阵列模块()使用阵列。您使用的类型不是阵列,而是列表。正如EOL所说,数组可以通过模块使用,这称为展平嵌套列表。这些关键字应该对您的研究有所帮助。您应该做的第一件事是了解python术语。这将使您更容易查找代码示例并提出问题。python中没有数组(除非您使用第三方模块,如numpy),而是有列表。@StoryTeller:实际上python中没有内置数组。但是,可以通过标准阵列模块()使用阵列。您使用的类型不是阵列,而是列表。正如EOL所说,阵列可以通过模块获得。我觉得有义务询问关于第三种方法的问题。UH请使用更有意义的名称或提供一个逐步的解释。为什么第二种方法比第三种方法更可取?@MoazzamKhan——我的意思是,使用
链。from_iterable
应该在第一个选项上使用,使用列表理解是可以的。@StoryTeller——添加了一些解释:)谢谢大家,这真的很有帮助。我觉得有义务问一下关于第三种方法的问题。UH请使用更有意义的名称或提供一个逐步的解释。为什么第二种方法比第三种方法更可取?@MoazzamKhan——我的意思是,使用
链。from_iterable
应该在第一个选项上使用,使用列表理解是可以的。@StoryTeller——添加了一些解释:)谢谢大家,这真的很有帮助。