Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

ดึงสมาชิกในช่วง Index หลายช่วงจากลิสต์ (Extract Elements in Multiple Index Ranges)

แนวคิด

กำหนดลิสต์ และลิสต์ของช่วง 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