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

Python – แยกช่วงขององค์ประกอบที่คล้ายกันติดต่อกันตั้งแต่รายการสตริง


เมื่อจำเป็นต้องแยกช่วงขององค์ประกอบที่คล้ายกันที่ต่อเนื่องกันเป็นช่วงจากรายการ จะใช้การวนซ้ำอย่างง่ายและวิธีการ "ผนวก"

ตัวอย่าง

ด้านล่างนี้เป็นการสาธิตสิ่งเดียวกัน -

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 และกำหนดให้กับตัวแปรอื่น

  • จำนวนเต็มจะถูกผนวกเข้ากับรายการว่าง

  • นี่คือเอาต์พุตที่แสดงบนคอนโซล