Computer >> Máy Tính >  >> Lập trình >> Python

Python - Các chỉ số phạm vi liên tiếp được nhóm của các phần tử

Khi yêu cầu lấy phạm vi chỉ số liên tiếp được nhóm của các phần tử trong một danh sách, một chỉ định mặc định sẽ được tạo. Một phép lặp đơn giản, cùng với phương thức ‘groupby’, phương thức ‘len’, phương thức ‘list’ và các phương thức ‘append’ được sử dụng.

Ví dụ

Dưới đây là một minh chứng về điều tương tự -

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)

Đầu ra

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)]})

Giải thích

  • Các gói bắt buộc được nhập vào môi trường.

  • Danh sách các số nguyên được xác định và hiển thị trên bảng điều khiển.

  • Giá trị được khởi tạo thành 0.

  • Một từ điển mặc định được tạo.

  • Danh sách được lặp lại bằng cách áp dụng phương thức "groupby" trên đó.

  • Giá trị đã khởi tạo được thêm vào từ điển trống.

  • Điều này được hiển thị dưới dạng đầu ra trên bảng điều khiển.