เมื่อต้องการดึงช่วงขององค์ประกอบที่ซ้ำกันติดต่อกันจากลิสต์ ใช้การวนลูปง่ายและเมธอด 'append'
ตัวอย่าง
สาธิตด้านล่าง:
my_list = [12, 23, 23, 23, 48, 48, 36, 17, 17]
print("The list is : ")
print(my_list)
my_result = []
index = 0
while index < (len(my_list)):
start_position = index
val = my_list[index]
while (index < len(my_list) and my_list[index] == val):
index += 1
end_position = index - 1
my_result.append((val, start_position, end_position))
print("The my_result is :")
print(my_result)
ผลลัพธ์
The list is : [12, 23, 23, 23, 48, 48, 36, 17, 17] The my_result is : [(12, 0, 0), (23, 1, 3), (48, 4, 5), (36, 6, 6), (17, 7, 8)]
คำอธิบาย
- กำหนดลิสต์และแสดงผล
- สร้างลิสต์ว่าง
- กำหนดค่า index = 0
- วนลูปลิสต์ วางเงื่อนไข while
- ตรวจสอบว่า index น้อยกว่าความยาวลิสต์ และค่าที่ index เท่ากับค่าที่กำหนด
- ถ้าใช่ เพิ่ม index
- มิฉะนั้น ลด index ลง 1 กำหนดให้ตัวแปรอื่น
- นำค่าจำนวนเต็มไป append ในลิสต์ว่าง
- แสดงผลลัพธ์บนคอนโซล