แนวคิด
กำหนดลิสต์ และลิสต์ของช่วง index (start, end) ให้ดึงสมาชิกในทุกช่วงมารวมกัน (extend) อนุญาตให้ overlap
ตัวอย่างโค้ด
my_list = [13, 21, 81, 10, 13, 17, 22, 18, 11, 90, 0]
print("ลิสต์:", my_list)
my_list.sort()
print("หลังเรียง:", my_list)
ranges = [(2, 4), (7, 8), (1, 2), (2, 7)]
print("ช่วง Index:", ranges)
result = []
for start, end in ranges:
# end inclusive -> slice ใช้ end+1
result.extend(my_list[start:end+1])
print("ผลลัพธ์รวม:", result)
result.sort()
print("หลังเรียง:", result)
ผลลัพธ์
ลิสต์: [13, 21, 81, 10, 13, 17, 22, 18, 11, 90, 0]
หลังเรียง: [0, 10, 11, 13, 13, 17, 18, 21, 22, 81, 90]
ช่วง Index: [(2, 4), (7, 8), (1, 2), (2, 7)]
ผลลัพธ์รวม: [11, 13, 13, 21, 22, 10, 11, 11, 13, 13, 17, 18, 21]
หลังเรียง: [10, 11, 11, 11, 13, 13, 13, 13, 17, 18, 21, 21, 22]
คำอธิบายช่วง (บนลิสต์ที่เรียงแล้ว)
- (2,4): index 2,3,4 -> 11,13,13
- (7,8): index 7,8 -> 21,22
- (1,2): index 1,2 -> 10,11
- (2,7): index 2,3,4,5,6,7 -> 11,13,13,17,18,21
List Comprehension