Python,如何将整数矩阵组合到列表中

Posted

技术标签:

【中文标题】Python,如何将整数矩阵组合到列表中【英文标题】:Python, how to combine integer matrix to a list 【发布时间】:2019-08-09 09:10:04 【问题描述】:

假设我有一个矩阵:a = [[1,2,3],[4,5,6],[7,8,9]]。如何将其与b = [1,2,3,4,5,6,7,8,9] 结合起来?

非常感谢

【问题讨论】:

b = numpy.hstack(a) import itertools; list(itertools.chain(*a)) How to make a flat list out of list of lists?、Flattening a shallow list in Python [duplicate]、concatenating sublists python [duplicate] 等可能重复 重复how-to-unnest-a-nested-list a 是列表列表还是 numpy 数组?为什么是 numpy 标签? 【参考方案1】:

使用 numpy:

import numpy
a = [[1,2,3],[4,5,6],[7,8,9]]
b = numpy.hstack(a)
list(b)
[1, 2, 3, 4, 5, 6, 7, 8, 9]

【讨论】:

如果您安装了 numpy,我认为这是最好的解决方案。 我认为他想要基于问题的标签。其他解决方案也可以。【参考方案2】:

也许这不是最漂亮的,但它确实有效:

a = [[1,2,3],[4,5,6],[7,8,9]]
b = [sub_thing for thing in a for sub_thing in thing]
print(b)

打印:

[1, 2, 3, 4, 5, 6, 7, 8, 9]

【讨论】:

【参考方案3】:

不使用 numpy:

#make the empty list b
b=[]
for row in a:#go trough the matrix a
    for value in row: #for every value
        b.append(value) #python is fun and easy

【讨论】:

这不是最有效的解决方案(使用像 numpy 这样的包),但易于理解并且无需额外的包即可工作。【参考方案4】:

组合整数矩阵的另一种方法是使用itertools chain

a = [[1,2,3],[4,5,6],[7,8,9]]
list(itertools.chain.from_iterable(a)

打印:

[1, 2, 3, 4, 5, 6, 7, 8, 9]

【讨论】:

【参考方案5】:

使用 numpy:

list(np.array(a).flatten())

【讨论】:

以上是关于Python,如何将整数矩阵组合到列表中的主要内容,如果未能解决你的问题,请参考以下文章

python中怎样将列表转成矩阵

如何从所有排列中生成所有可能的组合?

python的题目?

如何将整数添加到列表中的每个元素?

如何将列与列组合以获取数据列表中的结果(Python)?

如何将多个整数的列表转换为单个整数?