ในการวิเคราะห์ข้อมูลหรือประมวลผลข้อมูลโดยใช้ python เราพบสถานการณ์ที่ต้องสร้างรายการที่กำหนดใหม่หรือจัดรูปแบบใหม่เพื่อให้ได้รายการที่มีคอลัมน์ต่างกัน เราสามารถทำได้หลายวิธีดังที่กล่าวไว้ด้านล่าง
การใช้สไลซ์
เราสามารถแบ่งรายการที่องค์ประกอบบางอย่างเพื่อสร้างโครงสร้างคอลัมน์ ที่นี่เราแปลงรายการที่กำหนดเป็นรายการใหม่โดยที่องค์ประกอบถูกแยกจากตรงกลาง เราฟ้องสองสำหรับลูป ตัวนอกแบ่งองค์ประกอบจากองค์ประกอบที่ศูนย์ไปยังองค์ประกอบที่สอง และองค์ประกอบภายในจากองค์ประกอบที่สองไปยังองค์ประกอบสุดท้าย
ตัวอย่าง
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]]]
itertools.chain() และรายการความเข้าใจ
แทนที่จะใช้สองลูป เราสามารถใช้วิธีลูกโซ่จาก itertools การใช้ความเข้าใจรายการเราใช้ตรรกะเดียวกันกับด้านบนและได้ผลลัพธ์โดยแบ่งคอลัมน์ตรงกลางรายการที่กำหนด
ตัวอย่าง
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]]]