将列表列表转换为元组元组

时间:2021-02-07 04:51:41

标签: python numpy tuples

我有一个 2x1 矩阵列表,例如:

[[[2.3], [2.4]], [[1.7], [1.6]], [[2.02], [2.33]]]

我需要将其转换为元组元组,例如:

((2.3,2.4),(1.7,1.6),(2.02,2.33))

我知道我可以遍历列表并手动转换它,尝试检查是否有更好的优化方法。

3 个答案:

答案 0 :(得分:3)

使用嵌套列表理解:

orig = [[[2.3], [2.4]], [[1.7], [1.6]], [[2.02], [2.33]]]
>>> tuple(tuple(e[0] for e in l) for l in orig)
((2.3, 2.4), (1.7, 1.6), (2.02, 2.33))

答案 1 :(得分:0)

您可以使用 numpy 索引和切片外部维度来做到这一点。

ma =  [[[2.3], [2.4]], [[1.7], [1.6]], [[2.02], [2.33]]]
ama=np.array(ma) #incase it wasn't a numpy array since you mentioned numpy in tags
tuple(map(tuple,ama[:, :, 0].tolist()))

输出:

((2.3, 2.4), (1.7, 1.6), (2.02, 2.33))

答案 2 :(得分:0)

L = [[[2.3], [2.4]], [[1.7], [1.6]], [[2.02], [2.33]]]
tuple(tuple(l2[0] for l2 in l1) for l1 in L)

输出:

((2.3, 2.4), (1.7, 1.6), (2.02, 2.33))
相关问题