เมื่อจำเป็นต้องรับช่วงดัชนีขององค์ประกอบที่จัดกลุ่มติดต่อกันในรายการ จะมีการสร้าง defaultdict ใช้การวนซ้ำง่ายๆ ร่วมกับวิธี 'จัดกลุ่มตาม' วิธี 'เลน' วิธี 'รายการ' และวิธีการ 'ผนวก' ถูกนำมาใช้
ตัวอย่าง
ด้านล่างนี้เป็นการสาธิตสิ่งเดียวกัน -
from itertools import groupby from collections import defaultdict my_list = [63, 12, 84, 91, 52, 39, 25, 27, 20, 11, 0,9] print("The list is : " ) print(my_list) my_index = 0 my_result = defaultdict(list) for key, sub in groupby(my_list): element = len(list(sub)) my_result[key].append((my_index, my_index + element - 1)) my_index += element print("The resultant dictionary is : ") print(my_result)
ผลลัพธ์
The list is : [63, 12, 84, 91, 52, 39, 25, 27, 20, 11, 0, 9] The resultant dictionary is : defaultdict(, {63: [(0, 0)], 12: [(1, 1)], 84: [(2, 2)], 91: [(3, 3)], 52: [(4, 4)], 39: [(5, 5)], 25: [(6, 6)], 27: [(7, 7)], 20: [(8, 8)], 11: [(9, 9)], 0: [(10, 10)], 9: [(11, 11)]})
คำอธิบาย
-
แพ็คเกจที่จำเป็นจะถูกนำเข้าสู่สภาพแวดล้อม
-
รายการจำนวนเต็มถูกกำหนดและแสดงบนคอนโซล
-
ค่าเริ่มต้นเป็น 0
-
มีการสร้างพจนานุกรมเริ่มต้น
-
รายการจะถูกทำซ้ำโดยใช้วิธีการ "จัดกลุ่มตาม"
-
ค่าเริ่มต้นจะถูกผนวกเข้ากับพจนานุกรมที่ว่างเปล่า
-
ซึ่งจะแสดงเป็นเอาต์พุตบนคอนโซล