【发布时间】:2021-05-20 14:02:49
【问题描述】:
如何将此 3D 列表转换为元组?
[[[0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0]],
[[0, 0], [0, 0]],
[100]]
我使用这个代码:
tuple(tuple(tuple(j for j in i) for i in x))
但结果中仍然有 []
(([0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0]),
([0, 0], [0, 0]),
(100,))
【问题讨论】:
-
预期输出是什么?
-
只需添加另一个元组理解
tuple(tuple(tuple(tuple(k for k in j) for j in i) for i in x))。这将导致您的示例出错,因为最后一个元素100没有正确嵌套,无法成为 3D 列表。 -
@Cubed 这仍然不是一个通用的方法。如果您有超过 3 个嵌套级别,您的建议将失败。
标签: python list tuples list-comprehension