Python 矩阵,行和列
我有一个问题矩阵:
b= [[-2.5, 0.5], #b is random matrix
[-1.5, -0.5],
[-0.5, 0.5]]
我该如何从 b 得到:
b=[[[-2.5], [0.5]], [[-1.5], [-0.5]], [[-0.5], [0.5]]]
非常感谢
2 个回答
1
Claudiu的回答可能更简单明了,但这里有一个替代方案,它可以递归地遍历任何深度的列表。
>>> listify = lambda x: map(listify, x) if isinstance(x, list) else [x]
>>> listify(b)
[[[-2.5], [0.5]], [[-1.5], [-0.5]], [[-0.5], [0.5]]]
4
>>> b= [[-2.5, 0.5], #b is random matrix
[-1.5, -0.5],
[-0.5, 0.5]]
>>> [[[val] for val in row] for row in b]
[[[-2.5], [0.5]], [[-1.5], [-0.5]], [[-0.5], [0.5]]]
解释:想象一下有一个列表:
>>> oned = [1, 2, 3]
你可以用一种叫做列表推导的方法重新创建它:
>>> [val for val in oned]
[1, 2, 3]
然后把每个元素放到自己的列表里:
>>> [[val] for val in oned]
[[1], [2], [3]]
接着把这个方法扩展到二维列表。