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