【发布时间】:2019-10-02 07:59:23
【问题描述】:
假设我有一个列表列表,例如:
x = [[0,1,2,3],[4,5],[6,7,8,9,10]]
而且我有我希望定位的元素的“平面”索引,即如果它被展平为一维列表,我想从列表中选择的元素的索引:
flattened_indices = [0,1,4,9]
# # # #
flattened_list = [0,1,2,3,4,5,6,7,8,9,10]
如何转换 1.d。索引到 2.d。允许我从原始嵌套列表中恢复元素的索引? IE。在这个例子中:
2d_indices = [(0,0), (0,1), (1,0), (2,3)]
【问题讨论】:
-
如果将列表展平并提取元素而不是将索引转换为 2D 会不会更容易?
-
您可以通过查看列表的长度并进行一些简单的数学运算,将索引转换为二维索引。你试过了吗?
-
@AkshayNevrekar 实际问题比我使用的玩具模型要复杂一些,每个“子列表”实际上是子列表的可变长度子列表。因此,当第一个元素中可能有 3 个列表,但第二个元素中只有 2 个时,展平列表没有意义,而且您还可以为每个元素重用索引而不是展平多次。
标签: python python-3.x nested-lists indices