โจทย์: กำหนดลิสต์ที่มี sublist หลายตัว และตัวเลข N ให้ "แบน" (Flatten) sublist ทุก N ตัวรวมกันเป็น sublist ใหม่
ตัวอย่าง Input/Output
Input: lists = [[1, 2], [3, 4], [5, 6], [7, 8], [9, 10]], number = 2 Output: [[1, 2, 3, 4], [5, 6, 7, 8], [9, 10]]
ขั้นตอนการแก้ปัญหา
- กำหนดลิสต์และตัวเลข N
- สร้างลิสต์ว่างสำหรับผลลัพธ์
- วนลูปด้วย
range(0, len(lists), number)(ข้ามทีละ N) - Slice sublist
lists[i : i + number] - Flatten sublist ที่ slice ได้ แล้ว append เข้า result
ตัวอย่างโค้ด
lists = [[1, 2], [3, 4], [5, 6], [7, 8], [9, 10]]
number = 2
result = []
for i in range(0, len(lists), number):
result.append([element for sub_list in lists[i: i + number] for element in sub_list])
print(result)
ผลลัพธ์
[[1, 2, 3, 4], [5, 6, 7, 8], [9, 10]]
การทำงาน: i = 0 → flatten [[1,2], [3,4]] → [1,2,3,4]; i = 2 → flatten [[5,6], [7,8]] → [5,6,7,8]; i = 4 → flatten [[9,10]] → [9,10]