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,如何将整数矩阵组合到列表中的主要内容,如果未能解决你的问题,请参考以下文章