首页 > 解决方案 > 在python的嵌套列表中创建嵌套列表

问题描述

我有这个嵌套列表:

list_1 = [[1,2,3], [1,2,3,4,5,6], [1,2,3,4,5,6,7,8,9]]

子列表元素的计数始终为 3。我希望每个子列表中有 3 个元素。期望的输出:

list_1 = [[1,2,3], [1,2,3], [4,5,6],[1,2,3], [4,5,6], [7,8,9]]

我可以做到这一点,但首先我必须展平列表,然后创建嵌套列表。我的代码:

list_1 = [values for sub_list in lists_1 for values in sub_list]  # flatten it first

list_1 = [list_1[i:i+3] for i in range(0, len(list_1), 3)]

有没有办法跳过展平步骤并获得所需的结果?

标签: pythonlistnested-lists

解决方案


您可以使用嵌套列表推导:

list_1 = [[1,2,3], [1,2,3,4,5,6], [1,2,3,4,5,6,7,8,9]]
result = [i[j:j+3] for i in list_1 for j in range(0, len(i), 3)]

输出:

[[1, 2, 3], [1, 2, 3], [4, 5, 6], [1, 2, 3], [4, 5, 6], [7, 8, 9]]

推荐阅读