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

Python – จัดกลุ่มดัชนีช่วงต่อเนื่องขององค์ประกอบ


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

  • มีการสร้างพจนานุกรมเริ่มต้น

  • รายการจะถูกทำซ้ำโดยใช้วิธีการ "จัดกลุ่มตาม"

  • ค่าเริ่มต้นจะถูกผนวกเข้ากับพจนานุกรมที่ว่างเปล่า

  • ซึ่งจะแสดงเป็นเอาต์พุตบนคอนโซล