我有一个名为“ V_List”的列表,需要它来构建嵌套列表。
V_List = [145, 554, 784, 598, 632, 456, 8989, 123, 777]
我想要下面的嵌套列表,
result = [ [145, 598, 8989], [554, 632, 123], [784, 456, 777] ]
应该有这样的模式, 第一个元素应该转到第一个嵌套列表, 第二个元素应该转到第二个嵌套列表, 第三元素应转到第三嵌套列表, 然后第4个应该转到第一个嵌套列表。...
我该怎么做?
答案 0 :(得分:3)
所以您正在寻找:
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
变量来控制列表的最终数量。
答案 1 :(得分:1)
-编辑以适合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]]
答案 2 :(得分:0)
尝试一下。
nested = [[], [], []]
for item in V_List:
nested[V_list.index(item) % 3].append(item)
答案 3 :(得分:0)
您可以将 列表理解 和 zip 组合在一起:
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]]