在使用python分析数据或处理数据时,我们遇到了以下情况:必须对给定列表进行重构或调整以获取具有不同列的列表。我们可以通过以下讨论的多种方法来实现。
我们可以将列表切成某些元素以创建柱状结构。在这里,我们将给定列表转换为新列表,其中元素从中间拆分。我们起诉两个for循环。外部一个将元素从第零个元素拆分到第二个元素,内部一个将第二个元素拆分到最后一个元素。
x = [[5,10,15,20],[25,30,35,40],[45,50,55,60]] #Using list slicing and list comprehension print ("The Given input is : \n" + str(x)) result = [m for y in [[n[2: ], [n[0:2]]] for n in x] for m in y] print ("Converting column to separate elements in list of lists : \n" + str(result))
输出结果
运行上面的代码给我们以下结果-
The Given input is : [[5, 10, 15, 20], [25, 30, 35, 40], [45, 50, 55, 60]] Converting column to separate elements in list of lists : [[15, 20], [[5, 10]], [35, 40], [[25, 30]], [55, 60], [[45, 50]]]
除了两个for循环,我们还可以使用itertools中的chain方法。使用列表推导,我们应用与上述相同的逻辑,并在给定列表的中间拆分列以获取结果。
from itertools import chain x = [[5,10,15,20],[25,30,35,40],[45,50,55,60]] #Using list slicing and list comprehension print ("The Given input is : \n" + str(x)) res = list(chain(*[list((n[2: ], [n[0:2]])) for n in x])) print ("Converting column to separate elements in list of lists : \n" + str(res))
输出结果
运行上面的代码给我们以下结果-
The Given input is : [[5, 10, 15, 20], [25, 30, 35, 40], [45, 50, 55, 60]] Converting column to separate elements in list of lists : [[15, 20], [[5, 10]], [35, 40], [[25, 30]], [55, 60], [[45, 50]]]