从现有列表创建嵌套列表

Creating a nested list from an existing list

我有一个名为 "V_List" 的列表,我需要它来构建嵌套列表。

    V_List = [145, 554, 784, 598, 632, 456, 8989, 123, 777]

我想要我的嵌套列表如下,

   result = [ [145, 598, 8989], [554, 632, 123], [784, 456, 777] ]

它应该有这样的模式, 第一个元素应该进入第一个嵌套列表, 第二个元素应该去第二个嵌套列表, 第三个元素应该去第三个嵌套列表, 并且第 4 个应该转到第一个嵌套列表....

我怎样才能做这样的事情?

-- 编辑以适应 EvilSmurf 对 Python3 支持的评论 import math [[V_List[j * 3 + i] for j in range(math.ceil(len(V_List) / 3))] for i in range(3)]

解释:

每个 % 值的列表理解 (for i in range 3) 使用另一个列表理解获取相关项目的列表。

结果:

[[145, 598, 8989], [554, 632, 123], [784, 456, 777]]

试试这个。

nested = [[], [], []]
for item in V_List:
    nested[V_list.index(item) % 3].append(item)

所以你正在寻找这个:

total_lists = 3
result = [V_List[i::total_lists] for i in range(total_lists)]
result
#[[145, 598, 8989], [554, 632, 123], [784, 456, 777]]

因此,您可以使用 total_lists 变量控制生成的列表数量。

你可以结合list-comprehensionzip一起:

V_List = [145, 554, 784, 598, 632, 456, 8989, 123, 777]

V_List_splited = [list(i) for i in zip(V_List[:3] , V_List[3:6] , V_List[6:])]
print(V_List_splited)

输出:

C:\Users\Desktop>py x.py
[[145, 598, 8989], [554, 632, 123], [784, 456, 777]]