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