从现有列表创建嵌套列表
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-comprehension和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]]
我有一个名为 "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-comprehension和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]]