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